코딩 테스트 준비/BOJ
[BOJ_Python] 14916_거스름돈
junseok-rh
2023. 3. 18. 17:07
https://www.acmicpc.net/problem/14916
14916번: 거스름돈
첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.
www.acmicpc.net
어떻게 풀었는가
- 거스름돈을 2원짜리와 5원짜리로 못 주기 때문에 거스름돈을 못주는 돈은 1원과 3원이다.
- 거스름돈 N이 5로 나누어지면 그 몫만큼 5원짜리 동전 개수를 추가해주고 나누어지지 않으면 2를 계속 뺴주면서 2원짜리 동전을 한개씩 추가해줬다.
n = int(input())
if n == 1 or n == 3:
print(-1)
else:
cnt = 0
while True:
if n % 5 == 0:
cnt += n // 5
print(cnt)
break
else:
n = n - 2
cnt += 1
if n == 0:
print(cnt)
break
살짝 야매로 푼감이 없지 않아 있는 듯 하네요 ㅎㅎ
저는 1원인 경우와 3원인 경우를 빼주었지만 다른 분들이 어떻게 풀었는지 보니까 N에서 2를 계속 빼주다가 N이 음수가 되면 거스름돈을 못주니까 그때 -1을 출력하도록 코드를 짰더군요.
도움이 되었으면 좋겠습니다!!