반응형
https://www.acmicpc.net/problem/2839
예제 입력 | 예제 출력 |
18 | 4 |
4 | -1 |
6 | 2 |
9 | 3 |
11 | 3 |
((처음에는 생각했던 풀이는,
최대한 적은 봉지를 가져가려면 5kg로 최대한 많이 가져가야 하므로, 5kg로 나눌 수 있을 때까지 나누고 3kg로 나눠야 한다고 생각했다.
그래서, 5로 나누고 그 나머지를 다시 3으로 나눈다. 이때, 나누어 떨어지면 바로 나눈 횟수를 출력하고, 나누어 떨어지지 않으면 n에서 5를 빼고 다시 과정을 반복한다. ))
하지만, 5로 먼저 나누는게 봉지 객수를 최소한으로 하기 때문에 5로 나누어 떨어질 때 바로 출력하고, 나누어 떨어지지 않으면 3을 한번씩 빼고 다시 5로 나누는 것이 최소의 봉지 개수를 보장한다.
n = int(input())
result = 0
while True:
if n % 5 == 0:
result += (n // 5)
print(result)
break
n -= 3
result += 1
if n < 0:
print(-1)
break
반응형
'Algorithm > BOJ' 카테고리의 다른 글
BAEKJOON #11047) 동전 0 (python) (0) | 2021.09.04 |
---|---|
BAEKJOON #11399) ATM (python) (0) | 2021.09.01 |
BAEKJOON #1966) 프린터 큐 (0) | 2021.06.14 |
BAEKJOON #1874) 스택수열 (0) | 2021.06.11 |
BAEKJOON #2798) 블랙잭 (0) | 2021.06.10 |
댓글