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을 출력한다.
  • 남은 설탕이 마이너스가 아니라면 다시 처음으로 돌아가 무한루프를 돌린다.