Baekjoon/IM Level
[백준] 11399 ATM (실버4)
hellosonic
2023. 3. 15. 12:03
문제요약

나의 코드 및 설명
- 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하기 위해서는 우선, 입력한 시간들을 오름차순 정렬해주어야 한다.
- for문을 통해 한 사람이 돈을 인출하는데 필요한 시간을 time_temp 변수에 저장하고, 최종 출력할 result 변수에 누적해서 시간을 더하는 방법으로 문제를 해결하였다.
n = int(input())
time = list(map(int, input().split()))
time.sort()
result = 0
time_temp = 0
for i in range(n):
time_temp += time[i]
result += time_temp
print(result)
다른 코드 및 설명
- 리스트 슬라이싱을 통해, 변수를 하나만 사용하여 문제 해결이 가능하다. (시간 효율은 그 전의 코드가 더 좋다.)
n = int(input())
time = list(map(int, input().split()))
time.sort()
result = 0
for i in range(1,n+1):
result += sum(time[0:i])
print(result)
피드백
실버 난이도이지만, 간단하게 풀 수 있었다. 오름차순으로 정렬한 후 문제를 해결하는 것이 핵심 포인트.
두 가지 코드를 모두 작성한 만큼 다양한 해결 방법이 있다는 것을 항상 염두에 두자. 리스트 슬라이싱은 참 유용한 것 같다.