알고리즘/백준
[백준] 14916. 거스름돈 /Python
빙빙
2021. 5. 8. 10:25
n = int(input())
money = 0
if n // 5 > 0:
money += n//5
n %= 5
if n % 2 == 1: #5로 나눈 나머지가 홀수이면 5로 나눈 몫을 하나 줄이고 나머지에 5를 더함
money -= 1
n += 5
if n // 2 > 0:
money += n//2
n %= 2
if n != 0:
print(-1)
else:
print(money)
단순하게 처음엔 5로 나누고 몫을 따로 저장해준다음 그 나머지값을 2로 나눈 몫을 5로 나눈 몫과 합한 값을 출력하면 되는 줄 알았다. 그런데 13을 5로 나누면 몫은 2지만 나머지가 3이라서 2로 나머지가 0으로 만들 수가 없었다.
그런데 예제를 보면 13은 출력값이 5이다.
그래서 5로 나눴을 때 나머지가 홀수이면 2로 나눌수가 없으므로 5의 몫을 하나 차감해줬다. 그렇게하면 나머지가 짝수가 될 테니까!
최종으로 n값이 0이 아니면 거스름돈을 딱맞게 줄 수가 없는 거니까 -1를 출력하고 아니라면 몫을 누적해서 더해준 money를 출력한다.