Python_알고리즘
[Python] 백준 2839 설탕 배달
hahihuree
2021. 7. 4. 00:18
문제 바로가기
문제분석
# 봉지를 가작 적게 가져가야 하므로 5킬로그램으로 먼저 나누고 나머지가 있다면 3킬로그램으로 빼면서 계산하는게 핵심이다.
# 무한루프를 돌리고 그 안에서 if문으로 조건을 걸어 break해주는데, break의 조건은 2개가 생긴다.
# 하나는 모두 계산이 되어서 출력이 되었을 때, 다른 하나는 정확하게 N킬로 그램을 만들 수 없을때 이다.
문제풀이
N = int(input())
bag = 0
while True:
if N % 5 == 0:
bag += (N // 5)
print(bag)
break
N -= 3
bag += 1
if N < 0:
print(-1)
break
# 설탕 무게(N)를 입력값으로, 받고 설탕 봉지를 셀 변수를 초기화한다.
# 무한루프를 만들고, 조건문으로 break를 거는데
- 최소한의 봉지를 가져가야 하므로 일단 입력받은 설탕 무게를 5로 나눠본다.
- 나머지가 없다면, 최소한으로 가져가는 경우이므로 bag에 나눈 몫을 더하고 출력한다.
- 나머지가 있다면, 입력받은 설탕 무게에서 -3을 해주고 3키로 봉지가 하나 생겼으므로 bag에 1을 더한다.
- 그리고 나서 남은 설탕이 마이너스라면 정확하게 N킬로그램을 만들 수 없다는 것이므로 -1을 출력한다.
- 남은 설탕이 마이너스가 아니라면 다시 처음으로 돌아가 무한루프를 돌린다.