[python] 2839_설탕 배달

yeco_ob·2023년 2월 6일
0

알고리즘 문제 풀이

목록 보기
14/24

문제

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.

첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)
상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.

해결 방법

💡 5의 배수가 될 때까지 3씩 빼다가 5의 배수가 되면 5로 나눈 몫을 카운트한다.

제출

n = int(input())
cnt = 0

while n >= 0: #n이 0이상일 동안   
    if n % 5 == 0: #n이 5의 배수라면
        cnt += n // 5 #n을 5로 나눈 몫만큼 카운트
        print(cnt)
        break
    else: #n이 5의 배수가 아니라면(배수가 될 때까지 반복)
        n -= 3 #3뻬고
        cnt += 1 # 카운트 +1
else: 
    print(-1)

☝ while 반복문으로 n이 0 이상이라면 동작하도록 한다.

☝ 코드별 설명은 주석으로 (∩^o^)⊃━☆

0개의 댓글