[ Python Coding ] 백준 2839. 설탕배달

Hyeon_D's Log ღ·2021년 10월 29일
0

BAEKJOON

목록 보기
1/8
post-thumbnail

문제

입력 및 출력

실행 코드

n = int(input())
cnt = 0

while True:
    if n % 5 == 0:    # 만약 5로 나눠지면,
        cnt += n//5   # 그 몫만큼 cnt에 저장
        break
    
    else:             # 5로 안나눠지면,
        n -= 3        # 3kg를 한개 가져감
        cnt += 1
    
    if n < 0:         # 반복해서 (-)를 한 n이 0보다 작으면,
        cnt = -1      # 정확하게 봉지를 나눌 수 없으므로 cnt에 -1 저장
        break    
    
print(cnt)

풀이

  • 상근이는 최소한의 봉지를 가져가고 싶으므로 최대한 5kg에서 가져가야 한다.
  • 일단, 5의 배수이면 무조건 5kg만 가져갈 수 있으므로 몫을 구해 봉지의 개수를 구한다.
  • 5의 배수가 아니라면, 먼저 3kg를 가져가 본 후 다시 반복문을 통해 5kg를 가져갈 수 있는지 여부를 판단한다. (5kg가져가는 것 = 5의 배수)
  • n이 0보다 작으면 정확하게 봉지를 나눌 수 없는 무게이므로 -1을 출력한다.

[ 문제 링크 ]
https://www.acmicpc.net/problem/2839

profile
Data Scientist 🧐

0개의 댓글

관련 채용 정보