본문 바로가기
코딩테스트/Python

[python 구름] 거스름돈

by nahkim 2023. 5. 17.

📜 접근 방법

최소한의 동전을 주는 문제

  1. 가치가 높은 순으로 주어진 n을 뺀다.
  2. 뺄 수 없다면 그 다음 순서로 넘어간다.

 

✅ 정답 코드

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