본문 바로가기
알고리즘/그리디

[백준][Python] 14916번 거스름돈

by 임짠짠 2022. 3. 23.
반응형
 

14916번: 거스름돈

첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.

www.acmicpc.net

 

코드

n = int(input())
ans = 0
while n != 0:
    if n%5 == 0:
        ans += n//5
        break
    else:
         n -= 2
         if n < 0:
             ans = -1
             break
         ans += 1
print(ans)

 

설명

5는 2의 배수가 아니기 때문에 큰 수인 5로 먼저 거스르고 나머지를 2로 거스르는 방법은 사용할 수 없다.

그래서 일단 주어진 수가 5의 배수이면 나눈 값을 ans 변수에 더해줬고, 만약 5의 배수가 아니면 2를 빼주고 ans를 1 증가시켰다. 근데 2를 빼준 수가 음수가 되면 이것은 거슬러 줄 수 없는 상황이므로 -1을 출력하게 했다.

반응형

댓글