[python] 백준 11399번 ATM알고리즘/백준2022. 3. 3. 23:55
Table of Contents
문제 풀이
n명의 사람들이 돈을 인출하는 데 걸리는 시간이 주어지고 n-1번 사람이 돈을 뽑을 때까지 n번 사람은 기다려야 해서
기다리는 시간(n-1번 사람이 돈을 뽑는 시간)까지 계산해줘야 한다.
예제 1을 아래의 그림과 같이 보면
첫째 줄에 5 (사람 인원수)가 주어지고
둘째 줄에 3 1 4 3 2 (각 사람마다 인출하는데 필요한 시간)이 주어진다.
times라는 배열에 3 1 4 3 2를 담고 rs(배열)에 이전 사람이 돈을 뽑을 때까지 기다리는 시간과 본인이 인출하는데 시간을 누적하여 각 rs(배열)에 담아주면 된다. 예제에서는 5명이 있기 때문에 rs(배열)에도 5개의 값이 있을 것이다.
설명을 하기 위해서 rs(배열)을 썼지만 그냥 tot과 같은 변수 하나에 값을 누적시켜주면 된다.
하지만 여기서 다가 아닌 우리는 돈을 인출하는데 필요한 시간의 합을 최소로 만드는 것에 중점을 둬야 한다.
값을 작게 하는 방법은 해당 times(배열)을 오름차순 정렬하여 이전과 같이 계산하면 된다.
완성된 코드!!👍😊
n = int(input())
times = sorted(map(int,input().split()))
tot = 0
for i in range(len(times)):
j = 0
tot += sum(times[j:i+1])
print(tot)
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 1312번 소수 (0) | 2022.03.07 |
---|---|
[python] 백준 1934번 최소공배수 (0) | 2022.03.06 |
[python] 백준 13699번 점화식 (0) | 2022.03.02 |
[python] 백준 2729번 이진수 덧셈 (0) | 2022.03.01 |
[python] 백준 5568번 카드 놓기 (0) | 2022.02.28 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊