[백준] 11399번
✔ 그리디 알고리즘
그리디 알고리즘 단계 문제로 그리디 알고리즘에 간단한 설명은 여기서 보시면 됩니다.
📢 문제
📢 풀이
사용 언어 : 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)) # 최단시간
Author And Source
이 문제에 관하여([백준] 11399번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@pinkpig_21/백준-11399번
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)) # 최단시간
Author And Source
이 문제에 관하여([백준] 11399번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@pinkpig_21/백준-11399번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)