목차
1. 문제
2. 입출력 예시
입력 예시 | 출력 예시 |
---|---|
18 | 4 |
4 | -1 |
6 | 2 |
9 | 3 |
11 | 3 |
3. 문제 풀이
알고리즘을 푸는 데에 있어서 몇 가지 가정사항을 적용하였다.
- 입력 값(
N
)이 5로 나누어 떨어질 경우는 5로 나눈 몫을 더한 후 모든 봉지 수량의 합을 출력 - 그 외에는 입력 값(
N
)에 3을 빼고, 봉지 수는 1 증가시켜줄 것 - 만약,
2
번 과정에서 입력 값(N
)이 0보다 작을 경우 -1을 출력할 것
위의 가정사항을 코드로 나타내면 다음과 같다.
def solution(n):
kg5 = 0
kg3 = 0
while True:
if not n % 5:
kg5 += n // 5
print(kg5 + kg3)
break
n -= 3
kg3 += 1
if n < 0:
print(-1)
break
N = int(input())
solution(N)
제출한 코드의 성능은 메모리 28,776 KB
, 시간 64ms
이다. 사실, 5킬로그램 봉지와 3킬로그램 봉지의 수량을 굳이 나눌 필요없이 하나의 변수로 통일해도 되지만, 각각의 수량을 확인하고자 나누었다.
'Algorithm > Baekjoon' 카테고리의 다른 글
Baekjoon #1541 - 잃어버린 괄호 (0) | 2021.03.22 |
---|---|
Baekjoon #5585 - 거스름돈 (0) | 2021.03.21 |
Baekjoon #1931 - 회의실 배정 (0) | 2021.03.21 |
Baekjoon #11047 - 동전 0 (0) | 2021.03.20 |
Baekjoon #11399 - ATM (0) | 2021.03.20 |