티스토리 뷰
https://www.acmicpc.net/problem/11399
1. 문제
2. 정답 코드
n = int(input())
p = list(map(int, input().split()))
# 앞사람의 인출 시간이 짧을수록 총 인출 시간이 단축된다.
# 즉, 인출 시간이 오름차순 정렬되어 있다면 총 인출 시간의 최솟값을 구할 수 있다.
p.sort() # p 오름차순 정렬
answer = 0
accumulation = 0
for pi in p :
accumulation += pi # i번째 사람이 인출하는 데 걸리는 시간
answer += accumulation # 모든 사람의 누적 인출 시간
print(answer)
- 이 문제는 그리디 알고리즘이다. 문제에서 "최솟값"을 찾기 때문이다.
- 만약 문제에서 "가장 큰/작은~"이라는 말이 나온다면, 그 문제는 그리디 알고리즘을 떠올려 봐야 한다.
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 2012번 등수 매기기 파이썬 정답 코드 (0) | 2022.11.18 |
---|---|
[백준] 2217번 로프 파이썬 정답 코드 (0) | 2022.11.18 |
[백준] 2839번 설탕 배달 파이썬 정답 코드 (0) | 2022.11.18 |
[1920번] 수 찾기 파이썬 정답 코드 (0) | 2022.05.01 |
[1924번] 2007년 파이썬 정답 코드 (0) | 2022.04.26 |