본문 바로가기
백준

[백준] 2839번 : 설탕 배달 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 6. 30.
728x90
반응형

 

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

5kg 봉지를 최대한 가져가고 남은 무게를 3kg 봉지로 가져가야 한다. 무게가 5kg 봉지로 나눠 떨어지지 않는다면 3kg 봉지를 추가하고 남은 무게를 5kg 봉지로 가져가는 방법으로 문제를 해결한다.

 

  1. 입력을 받을 때 input() 함수보다 실행시간이 더 짧은 sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys
  2. 총 배달해야 할 설탕의 무게를 입력받는다. N = int(sys.stdin.readline())
  3. 총 가지고 갈 설탕의 봉지 개수를 저장해 줄 변수를 선언하고 초기화해 준다. count = 0
  4. 무게가 0이 될 때까지 반복한다. while (N >= 0)
  5. 만약 총무게를 5kg으로 나눌 수 있다면 if (N % 5 == 0)
  6. 총무게에서 5kg 봉지로 가지고 갈 수 있는 최대의 수를 총개수에 더해준다. count += (N // 5)
  7. 그리고 총개수의 결과를 출력해 준다. print(count)
  8. 반복문을 탈출한다. break
  9. 반복문이 종료되지 않았다면 총무게서 3kg 무게를 뺀다. N -= 3
  10. 뺀 설탕 봉지를 총 봉지 개수에 더해준다. count += 1
  11. 만약 정확하게 무게를 맞출 수 없다면 -1을 출력한다. else: print(-1)
반응형

3. 소스코드

import sys

N = int(sys.stdin.readline())

count = 0

while (N >= 0):
    if (N % 5 == 0): 
        count += (N // 5)
        print(count)
        break
        
    N -= 3  
    count += 1
else :
    print(-1)
728x90
반응형