Lim Seunghyun Space

[백준 온라인 저지] 설탕 배달 본문

Algorithm/문제

[백준 온라인 저지] 설탕 배달

Lim Seung Hyun 2022. 1. 24. 16:39

문제 출처

 

2839번: 설탕 배달

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

www.acmicpc.net

 

문제 요구사항

  • 설탕 봉지가 3kg, 5kg짜리를 사용하여 정확하게 N킬로그램을 배달해야 한다.
  • 배달을 위해 사용하는 봉지의 최소 갯수를 출력
  • 조건에 제시된 설탕 봉지를 사용하여 정확하게 N킬로그램을 만들 수 없는 경우 -1을 출력

 

나의 코드 (python3)

# source : https://www.acmicpc.net/problem/2839

N = int(input())

answer = 0

while N >= 0: # N이 0 이상일 때까지 반복
    if N % 5 == 0:
        answer += N // 5
        break # N이 5의 배수라면 3kg 봉지를 고려할 필요가 없기 때문에 종료
    N -= 3 # 5의 배수가 아니라면 하나의 3kg 봉지에 설탕을 담는다. # 만일 N이 3보다 작으면 반복문 종료
    answer += 1

if N < 0:  
    print(-1)
else:
    print(answer)
  • 5는 3의 배수가 아니므로 가장 많이 담을 수 있는 봉지순으로 문제를 해결할 수 없었다.
  • 봉지를 최소 갯수를 이용해야하기 때문에 5kg 봉지를 많이 쓰는 쪽으로 컨셉을 잡고 시작
  • 전체 무게가 5로 나누어 떨어진다고 하면 전체 무게를 5로 나눈 몫을 이용하면 되지만 그런게 아니라면 3kg 봉지를 하나 사용한 것으로 간주하여 전체 무게에서 3kg 무게를 빼주었다.

 

Github

728x90

'Algorithm > 문제' 카테고리의 다른 글

[백준 온라인 저지] 회의실 배정  (0) 2022.02.10
[백준 온라인 저지] 로프  (0) 2022.01.28
[백준 온라인 저지] 진법 변환  (0) 2021.12.30
[Leetcode] Climbing stairs  (0) 2021.12.13
[프로그래머스] 문자열 압축  (0) 2021.12.05