코딩테스트/백준

boj11399 ATM (실버4) - Greedy

개발자딥게 2022. 8. 7. 22:56
반응형

백준 문제 링크

https://www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

탐욕알고리즘(Greedy Algorithm)이란

최적의 해에 가까운 값을 구하기 위해 사용되는 알고리즘으로,

여러 경우 중에서 하나를 선택해야할 때마다 매 순간 최적이라고 생각되는 경우를 선택하는 방식이다.

 

 

내 풀이

현재 시점에서 가장 최선인 것 = 오름차순으로 정렬

# boj11399 ATM (Greedy)
# 난이도 실버4

# 내 풀이 (68ms)
import sys
n = int(sys.stdin.readline())
line = list(map(int, sys.stdin.readline().split()))

# 현재 시점에서 가장 최선인 것 = 오름차순으로 정렬
line.sort()

waiting_time = 0
result = list()
sum = 0

for l in line:
    waiting_time = waiting_time + l
    result.append(waiting_time)

for i in result:
    sum += i
print(sum)


# 두번째 풀이 (132ms)

# import sys
# N = int(sys.stdin.readline())
# seconds = list(map(int, sys.stdin.readline().split()))
#
# # 현재 시점에서 가장 최선인 것 = 오름차순으로 정렬
# seconds.sort()
#
# minimum = 0
#
# for i in range(N):
#     for j in range(i + 1):
#         minimum += seconds[j]
# print(minimum)

https://github.com/yj0903/python_CodingTest/blob/main/Algorithms/Greedy/boj11399.py

 

GitHub - yj0903/python_CodingTest: python_problemSolving

python_problemSolving. Contribute to yj0903/python_CodingTest development by creating an account on GitHub.

github.com

 

반응형