[백준] 11399번

3148 단어 백준pythonpython

✔ 그리디 알고리즘

그리디 알고리즘 단계 문제로 그리디 알고리즘에 간단한 설명은 여기서 보시면 됩니다.

📢 문제

백준 문제 링크

📢 풀이

사용 언어 : python
최단시간은 앞의 사람의 인출하는 시간이 작을수록 뒷 사람의 대기시간이 줄어들기 때문에 시간이 적게 걸리는 사람 순으로 정렬하여 구할 수 있다.

  • n: 사람의 수
  • arr: 사람이 돈을 인출하는데 걸리는 시간
  • result : 각 사람의 인출시간 + 대기시간 = 각 사람마다 돈을 인출하는데 필요한 시간
  • 정렬은 sort()를 사용하여 오름차순으로 정렬

📢 코드

import sys
N = int(sys.stdin.readline())
arr = list(map(int,sys.stdin.readline().split()))
arr.sort() # 오름차순으로 정렬
result = [0]
for i in range(N):
    result.append(result[-1] + arr[i]) # 각 사람이 돈을 인출하는데 까지 걸린 시간을 result에 추가
print(sum(result)) # 최단시간

좋은 웹페이지 즐겨찾기