[백준(Python)] 1817번 : 짐 챙기는 숌

2023. 12. 4. 00:13·Coding Test/백준

문제

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

 

1817번: 짐 챙기는 숌

첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책

www.acmicpc.net

코드

n, m = map(int,input().split())
if n == 0:
    print(0) # 책 없으면 박스 0개
else:
    w = list(map(int,input().split()))

    box = 0
    cnt = 1 # 책이 하나라도 있으면 cnt가 1
    for i in range(n-1, -1, -1): # 역순회
        box += w[i]
        if box > m : # 한 박스의 무게가 최대 무게를 초과하는 경우
            cnt += 1 # 박스의 개수를 추가
            box = w[i] # 현재 책은 새 박스에 넣음
            
    print(cnt)

해설

  • 책은 탑처럼 차곡차곡 싸여있다 -> 역순으로 순회
  • 상자 최대 무게를 초과하면 cnt에 +1 하고, 현재 책 무게로 재설정.
  • 박스의 개수의 최솟값은 cnt

'Coding Test > 백준' 카테고리의 다른 글

[백준(Python)] 10845번 : 큐  (0) 2023.12.05
[백준(Python)] 11399번 : ATM  (0) 2023.12.04
[백준(Python)] 11053번 : 가장 긴 증가하는 부분 수열  (0) 2023.11.30
[백준(Python)] 1343번 : 폴리오미노  (1) 2023.11.30
[백준(Python)] 2847 : 게임을 만든 동준이  (1) 2023.11.30
'Coding Test/백준' 카테고리의 다른 글
  • [백준(Python)] 10845번 : 큐
  • [백준(Python)] 11399번 : ATM
  • [백준(Python)] 11053번 : 가장 긴 증가하는 부분 수열
  • [백준(Python)] 1343번 : 폴리오미노
6eom9eun
6eom9eun
  • 6eom9eun
    개발 공간
    6eom9eun
  • 전체
    오늘
    어제
    • 전체보기 (33)
      • Front (7)
        • flutter (2)
        • react (5)
      • Back (4)
        • node.js (2)
        • django (4)
      • AI (2)
      • KT Aivle (1)
      • Coding Test (13)
        • 프로그래머스 (5)
        • 백준 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    poetry
    PYTHON
    OpenAI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
6eom9eun
[백준(Python)] 1817번 : 짐 챙기는 숌
상단으로

티스토리툴바