알고리즘/문제풀이

[백준] 14916번 거스름돈 - 파이썬(Python)

SeongOnion 2021. 1. 14. 13:04
728x90

문제 (링크)

https://www.acmicpc.net/problem/14916

 

14916번: 거스름돈

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

www.acmicpc.net

 

나의 풀이

n = int(input())

def change(n):
    count = 0
    while n % 5 != 0:
        n -= 2
        count += 1
        if n < 0:
            return -1
    
    count += (n // 5)
    return count

print(change(n))

 

바로 직전의 설탕 배달 문제와 동일한 문제로, n이 5로 나누어떨어질 때까지 2를 빼주면서 count를 1씩 추가해주고, n이 0보다 작아지면 -1을 리턴하며 함수를 끝내준다.

 

혹은 n에서 2씩 빼주는 과정에서 5로 나누어떨어지는 값이 된다면 (5의 배수가 된다면) 여지껏 세온 count에 n // 5 값을 더해주면 된다.

 

같은 방식을 통해 쉽게 풀 수 있었다.