티스토리 뷰

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를 출력한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함