본문 바로가기

Algorithm/Baekjoon

Baekjoon #2839 - 설탕 배달

목차

1. 문제

2. 입출력 예시

3. 문제 풀이

1. 문제

2. 입출력 예시

입력 예시 출력 예시
18 4
4 -1
6 2
9 3
11 3

3. 문제 풀이

알고리즘을 푸는 데에 있어서 몇 가지 가정사항을 적용하였다.

  1. 입력 값(N)이 5로 나누어 떨어질 경우는 5로 나눈 몫을 더한 후 모든 봉지 수량의 합을 출력
  2. 그 외에는 입력 값(N)에 3을 빼고, 봉지 수는 1 증가시켜줄 것
  3. 만약, 2번 과정에서 입력 값(N)이 0보다 작을 경우 -1을 출력할 것

위의 가정사항을 코드로 나타내면 다음과 같다.

def solution(n):
    kg5 = 0
    kg3 = 0

    while True:
        if not n % 5:
            kg5 += n // 5
            print(kg5 + kg3)
            break

        n -= 3
        kg3 += 1
        if n < 0:
            print(-1)
            break


N = int(input())
solution(N)

제출한 코드의 성능은 메모리 28,776 KB, 시간 64ms이다. 사실, 5킬로그램 봉지와 3킬로그램 봉지의 수량을 굳이 나눌 필요없이 하나의 변수로 통일해도 되지만, 각각의 수량을 확인하고자 나누었다.

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon #1541 - 잃어버린 괄호  (0) 2021.03.22
Baekjoon #5585 - 거스름돈  (0) 2021.03.21
Baekjoon #1931 - 회의실 배정  (0) 2021.03.21
Baekjoon #11047 - 동전 0  (0) 2021.03.20
Baekjoon #11399 - ATM  (0) 2021.03.20