yha97 2022. 10. 6. 15:24

날짜 : 2022. 10. 06

사용 언어 : python

 

문제

 

 

코드

import sys

n = int(sys.stdin.readline()) # 거스름돈 액수
if n < 5:
    for i in range(1, 3):
        if n == (i * 2):
            print(i)
            break
    else:
        print(-1)
else:
    i, j = 0, 0
    for i in range(n // 5, -1, -1):
        for j in range(0, n // 2 + 1):
            if 5 * i + 2 * j == n:
                print(i+j)
                break
        else:
            continue
        break
    else:
        print(-1)

 

 

알게된 점

- 5미만의 케이스를 고려하면서 오답이 발생했다.

- 분기를 많이하기 싫었지만 계속 틀려서 5 미만과 나머지로 분기해서 그리디로 풀었다.

 

 

참고 사이트