📜 접근 방법
최소한의 동전을 주는 문제
- 가치가 높은 순으로 주어진 n을 뺀다.
- 뺄 수 없다면 그 다음 순서로 넘어간다.
✅ 정답 코드
n = int(input())
cnt = 0
while n > 0:
if n >= 40:
tmp = n // 40
n -= 40 * tmp
elif n >= 20:
tmp = n // 20
n -= 20 * tmp
elif n >= 10:
tmp = n // 10
n -= 10 * tmp
elif n >= 5:
tmp = n // 5
n -= 5 * tmp
else:
n -= 1
tmp = 1
cnt += tmp
print(cnt)
이렇게 풀게 되면 계속해서 조건을 확인할 필요가 없는데 계속해서 확인을 하게 되는 문제가 있다.
✅ 다른 방식으로 줄인 코드
n = int(input())
coins = [40, 20, 10, 5, 1]
cnt = 0
for coin in coins:
cnt += n // coin
n %= coin
print(cnt)
💡알게 된점
풀면서도 계속 똑같은 코드가 반복되어서 불편해서 다른 방식으로 풀었다.
'코딩테스트 > Python' 카테고리의 다른 글
[python 구름] 구름 스퀘어 (0) | 2023.05.20 |
---|---|
[python 구름] 직사각형 만들기 (0) | 2023.05.19 |
[python 구름] 1차원 뿌요뿌요 (0) | 2023.05.16 |
[python 구름] 체크 카드 (0) | 2023.05.15 |
[python 구름] Stack (0) | 2023.05.15 |