알고리즘 & 코딩테스트
[백준] 11047번 동전 0
Haksae
2022. 3. 19. 05:47
⛏ 문제 파악
- N 종류의 동전이 주어지고, K라는 값이 주어짐
- 주어진 동전의 종류의 최소한의 갯수로 K라는 값을 만드는 문제
👉🏻 답안
- 패스한 답안
N, K = map(int, input().split())
need = 0
coins = []
for _ in range(N):
coin_type = int(input())
coins.append(coin_type)
coins.reverse()
for coin in coins:
if K == 0:
break
need += K // coin
K %= coin
print(need)
- 시간 초과 뜬 답안
N, K = map(int, input().split())
need = 0
coins = []
for _ in range(N):
coin_type = int(input())
coins.append(coin_type)
coins.reverse()
for coin in coins:
if coin > K:
continue
else:
while coin <= K:
K -= coin
need += 1
print(need)
📑 간단한 설명
- 원래 아래 것으로 답안을 제출했는데 시간초과가 나서 위에 답안으로 제출했다.
- 주어진 동전의 종류를 reverse() 했다. 큰 것부터 나누기 위함
- need += K // coin : //은 나머지를 제외하고 몫만 알려줌
- K %= coin : K % coin 하면 나머지만 나옴. 나머지를 넣어서 계속 for문 돌림