문제
- 설탕은 3킬로그램 봉지와 5킬로그램 봉지가 있다.
- 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지의 최소 개수를 구하는 문제이다.
- 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 봉지 3개와 3킬로그램 봉지 1개를 배달해 총 4개를 가져갈 수 있다.
- N킬로그램일때 3 ≤ N ≤ 5000인 정수이다.
- 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.
알고리즘
- 우선적으로 5킬로그램 봉지로 가져갈 수 있는지 확인하고 가능하다면 5킬로그램 봉지로 가져간다.
- 5킬로그램 봉지로 한 번에 가져갈 수 없다면 3킬로그램 1봉지를 가져간다.
- 위 과정을 반복문을 통해 실행한다.
- 5와 3으로 나누어 떨어지지않는다면 -1을 출력한다.
코드
n = int(input())
# 봉지 개수 초기값
result = 0
# 5킬로그램 봉지로 다 가져갈 수 있는지 우선적으로 확인한다.
# 그게 안된다면 3킬로그램 봉지를 하나씩 가져간다.
# 위 두 과정을 반복한다.
while True:
# 5킬로그램 봉지로 다 가져갈 수 있으면 전체에서 5킬로그램을 나누어 결과값에 넣는다.
if n % 5 == 0:
# 결과값과 봉지 개수를 더해서 출력한다.
result = n // 5 + result
print(result)
break
# 3킬로그램 봉지를 하나 가져간다.
# 봉지 개수 카운트
n -= 3
result += 1
# 3과 5로 나누어떨어지지 않는다면 -1을 출력한다.
if n < 0:
print(-1)
break
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1946번(파이썬): 신입 사원 (0) | 2021.05.22 |
---|---|
[baekjoon] 백준 2437번(파이썬): 저울 (0) | 2021.05.21 |
[baekjoon] 백준 4796번(파이썬): 캠핑 (0) | 2021.05.20 |
[baekjoon] 백준 1541번(파이썬): 잃어버린 괄호 (0) | 2021.05.18 |
[baekjoon] 백준 5585번(파이썬): 거스름돈 (0) | 2021.05.13 |