문제요약
나의 코드 및 설명
- 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하기 위해서는 우선, 입력한 시간들을 오름차순 정렬해주어야 한다.
- 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)
피드백
실버 난이도이지만, 간단하게 풀 수 있었다. 오름차순으로 정렬한 후 문제를 해결하는 것이 핵심 포인트.
두 가지 코드를 모두 작성한 만큼 다양한 해결 방법이 있다는 것을 항상 염두에 두자. 리스트 슬라이싱은 참 유용한 것 같다.
'Baekjoon > IM Level' 카테고리의 다른 글
[백준] 3085 사탕 게임 (실버2) (0) | 2023.03.15 |
---|---|
[백준] 2559 수열 (실버3) / 시간초과 해결 (0) | 2023.03.15 |
[백준] 10163 색종이 (브론즈1) / 서브태스크, 시간초과 해결 (0) | 2023.03.15 |
[백준] 2839 설탕배달 (실버4) (2) | 2023.03.15 |
[백준] 8958 OX퀴즈 (브론즈2) (0) | 2023.03.14 |