백준 14916

soss·2022년 10월 6일
0
post-thumbnail

백준 14916

import math

ex = int(input())
count = 0

if ex <= 1 or ex == 3:
    print("-1")
elif ex % 5 == 0:
    count = ex / 5
    count = math.trunc(count)
    print(count)
else:
    while ex % 5 != 0:
        ex -= 2
        count +=1
    count += ex / 5
    count = math.trunc(count)
    print(count)

처음에는 문제를 보자마자 5로 나눈 뒤에 그 몫을 2로 나누면 되는 줄 알았다.
큰 수로 나누기만 하면 동전의 갯수가 최소가 될 거라는 안일한 생각을 했다.
13과 같이 무작정 5로 나누면 2로 거슬러 줄 수 없는 수가 있다.
또한 1, 3 같은 경우는 따로 거슬러 줄 수 없다.
다 풀고 나서 다른 사람들의 풀이를 보니 dp를 이용해서 훨씬 간결하게 풀이를 했다.
dp 기초 문제를 좀 더 접해봐야겠다

profile
안녕하세요. 복습 목적으로 문제 풀이를 올리고 있습니다.

0개의 댓글