1. 아이디어
▪ 입력받은 동전 내림차순으로 정렬
▪ for 문 돌면서
- 해당 동전 사용한 개수 더하기
- 나머지 원 갱신
2. 시간복잡도
▪ O(N)
3.변수
▪ 동전 리스트: int[]
▪ 사용한 동전의 수: int
Code
import sys
input = sys.stdin.readline
N, K = map(int, input().split())
coin_list = [int(input()) for _ in range(N)]
cnt = 0
coin_list.reverse()
for coin in coin_list:
if coin <= K:
cnt += K//coin
K = K%coin
print(cnt)
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
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 백준 1197번: 최소 스패닝 트리 (1) | 2024.03.08 |
---|---|
[코딩테스트] 백준 11726번: 2×n 타일링 (0) | 2024.03.08 |
[코딩테스트] 백준 2559번: 수 찾기 (0) | 2024.03.08 |
[코딩테스트] 백준 2559번: 수열 (0) | 2024.03.08 |
[코딩테스트] 백준 14503번: 로봇 청소기 (1) | 2024.03.08 |