알고리즘 공부(C++)

11399 ATM

혀니리리 2022. 8. 6. 09:24
728x90

11399번: ATM (acmicpc.net)

 

11399번: ATM

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

www.acmicpc.net

N= int(input())
result = 0
nList = list(map(int, input().split()))
nList = sorted(nList)

i = N
while i > 0 :
    result += nList[N - i] * i
    i -= 1
print(result)

저번 문제로 된통 당하고 이번 문제는 비교적 쉬운 편이었다.

그리디 알고리즘이 그 안의 구조가 어찌 됐건 내가 구해야되는 정보만 구하면 되는 특성을 지녔는데

이 문제도 그 안의 정렬은 신경쓰지 않고 최소의 값만 구하면 되는 문제였다.

우선 정렬을 하고, 가장 작은 수를 가장 많이 나오게, 가장 큰 수를 가장 적게 나오게 하면 된다.

728x90

'알고리즘 공부(C++)' 카테고리의 다른 글

1966 프린터 큐  (0) 2022.08.10
11047 코인  (0) 2022.08.09
10773 제로  (0) 2022.08.09
7568 덩치  (0) 2022.08.08
BOJ 1931 회의실  (0) 2022.08.05