[백준] 2839번 설탕 배달 해설 및 풀이 (Python)

2025. 4. 1. 21:50·Study/코딩 테스트
반응형

백준 2839번 설탕 배달

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


 

문제 유형

수학
다이나믹 프로그래밍
그리디 알고리즘

 

풀이 방법 도출

우선 그리디하게 5kg 봉지를 최대한 많이 사용하고, 나머지를 3kg 봉지로 채우는 방법이 최적입니다.

  1. 5kg 봉지를 많이 쓰지만 남은 무게가 3으로 나누어떨어지는지 확인합니다.
  2. 나누어서 떨어지면 해당 조합이 최소 봉지 수일 수 있으므로 출력합니다.
  3. 아니라면 5kg 봉지 하나를 줄이고 다시 시도합니다.
  4. 끝까지 되지 않으면 -1 출력합니다.

 

시간 복잡도

  • 반복문 : O(N)

 


 

핵심 코드 삽입 및 설명
n = int(input())

# 5kg 봉지를 최대한 많이 사용하는 방향으로 반복
count = -1  # 초기값을 정확히 나눌 수 없는 경우 -1로 설정
for five_bag in range(n // 5, -1, -1):  # 5kg 봉지를 많이 쓰는 방향으로 감소
    remain = n - (5 * five_bag)  # 5kg을 썼을 때 남는 무게
    if remain % 3 == 0:
        three_bag = remain // 3
        count = five_bag + three_bag  # 전체 봉지 수
        break  # 최소 봉지이므로 더 이상 볼 필요 없음

print(count)
반응형
저작자표시 비영리 변경금지 (새창열림)

'Study > 코딩 테스트' 카테고리의 다른 글

[99클럽 코테 스터디 5일차 TIL] LeetCode 225. Implement Stack using Queues 해설 및 풀이 (Java)  (0) 2025.04.04
[백준] 2751번 수 정렬하기 2 해설 및 풀이 (Python)  (0) 2025.04.04
[백준] 11053번 가장 긴 증가하는 부분 수열 (Python)  (0) 2025.04.01
[백준] 1389번 케빈 베이컨의 6단계 법칙 해설 및 풀이 (Python)  (0) 2025.04.01
[LeetCode] 443. String Compression 해설 및 풀이 (Python)  (0) 2025.03.29
'Study/코딩 테스트' 카테고리의 다른 글
  • [99클럽 코테 스터디 5일차 TIL] LeetCode 225. Implement Stack using Queues 해설 및 풀이 (Java)
  • [백준] 2751번 수 정렬하기 2 해설 및 풀이 (Python)
  • [백준] 11053번 가장 긴 증가하는 부분 수열 (Python)
  • [백준] 1389번 케빈 베이컨의 6단계 법칙 해설 및 풀이 (Python)
Dev Chu
Dev Chu
  • Dev Chu
    Log_Double 7
    Dev Chu
  • 전체
    오늘
    어제
    • LOG LIST (208)
      • log Double 7 (2)
        • notice (1)
        • 회고록 (1)
      • Study (116)
        • 과제 (2)
        • 코딩 테스트 (109)
        • 대규모 시스템 설계 기초 (5)
        • 면접 (0)
      • CS (10)
        • TIL (4)
        • Design Pattern (2)
        • 자료구조 & 알고리즘 (4)
        • 소프트웨어 공학 (0)
        • 데이터베이스 (0)
        • 정보보안 (0)
        • 운영체제 (0)
        • 네트워크 (0)
        • 디자인 패턴 (0)
        • 시스템 설계 (0)
      • FrontEnd (26)
        • HTML & CSS (16)
        • JavaScript & jQuery (9)
        • React (1)
      • BackEnd (17)
        • Java (4)
        • Python (6)
        • Spring (7)
        • JPA (0)
      • Infra & DevOps (11)
        • AWS (3)
        • Git (8)
      • Project (5)
        • Eterny(repo_bis) (3)
        • WhiteMonday (2)
      • ETC (21)
        • TIP (14)
        • Error (5)
        • SQLD (2)
        • 정보처리기사 (0)
  • 블로그 메뉴

    • 코딩 테스트
  • 링크

    • GitHub
  • 공지사항

    • Log Double 7
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Dev Chu
[백준] 2839번 설탕 배달 해설 및 풀이 (Python)
상단으로

티스토리툴바