반응형
코드
n = int(input())
cnt = 0
while n >= 0 :
if n % 5 == 0 :
cnt += n//5
print(cnt)
break
n -= 3
cnt += 1
else :
print(-1)
문제 풀이
봉지의 최소 개수를 구해야하는 문제이기 때문에 3과 5중 큰 수인 5로 나누어 떨어지게 만들면 최솟값을 구할 수 있다.
1. n이 5로 한 번에 나눠 떨어지는 수이다.
2. n이 5로 나누어지지 않아 -3을 해가면서 5로 나누어 떨어지는지 확인한다.
3. (2)의 방법이 되지 않는 3의 배수인 경우 -3을 통해서만 계산한다.
4. 나머지 경우는 문제에서 제시했듯이 -1을 출력한다.
(3)번 같은 경우 출력하기 위해서 n>0 이 아닌 n>=0을 함으로써 0이 됐을 때 더해지는 값이 없으므로 3번의 경우의 수도 출력할 수 있게 한다.
반응형
'Algorithm > Boj' 카테고리의 다른 글
백준 2869 파이썬 / 달팽이는 올라가고 싶다 (0) | 2022.02.05 |
---|---|
백준 2775 파이썬 / 부녀회장이 될테야 (0) | 2022.02.04 |
백준 4673 파이썬 (0) | 2022.01.29 |
백준 8958 파이썬 (0) | 2022.01.29 |
백준 4344 파이썬 (0) | 2022.01.29 |