한 걸음씩 기록하며

[백준] 11047번 동전 0 본문

알고리즘 & 코딩테스트

[백준] 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문 돌림

'알고리즘 & 코딩테스트' 카테고리의 다른 글

[백준] 1436번 영화감독 숌  (0) 2022.03.20
[백준] 11399번 ATM  (0) 2022.03.19
[백준] 1541번 잃어버린 괄호  (0) 2022.03.19
[백준] 11050번 이항 계수 1  (0) 2022.03.18
[백준] 1934번 최소공배수  (0) 2022.03.18
Comments