티스토리 뷰
728x90
반응형
문제
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
코드
N, K = map(int, input().split())
d = [int(input()) for _ in range(N)]
d.sort(reverse=True)
result = 0
for i in range(N):
if d[i] > K:
continue
else:
result += K // d[i]
K = K % d[i]
print(result)
코드설명
그리디 알고리즘 문제로 눈앞에 최적의 해만 선택해도 최적의 해를 얻을 수 있다.
최적의 해를 선택할 수 있도록 정렬을 거꾸로 만들어주고 K의 값보다 나눠야 하는 값이 크다면 다음으로 넘어간다.
K와 같거나 작은 수중에 가장 큰수로 나눠주고 K값을 갱신해준다음 for문이 끝날때 까지 돌면된다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2609번 최대공약수와 최소공배수 (Python) (0) | 2021.03.13 |
---|---|
[백준] 11399번 ATM (Python) (0) | 2021.03.13 |
[백준] 1932번 정수 삼각형 (Python) (0) | 2021.03.13 |
[백준] 1149번 RGB거리 (Python) (0) | 2021.03.13 |
[백준] 9461번 파도반 수열 (Python) (0) | 2021.03.13 |
댓글