본문으로 이동
코드패스 by Devin.KR

문제 4098 · 바이트 IV

출발 대기 상자

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

택배 작업대에는 물품을 담는 상자 하나가 놓여 있다. 작업자는 기록 장치에 남은 문자를 왼쪽부터 하나씩 읽으며 물품을 담거나 상자를 출발시킨다. 각 상자에 담을 수 있는 물품의 무게 합은 정수 C 이하이며, 처음 작업대에 놓인 상자는 비어 있다. 물품을 담는 순서는 기록에 나타난 순서와 같아야 한다. 기록은 숫자 문자로만 이루어진 문자열이다. '1'부터 '9'까지의 문자는 그 숫자만큼의 무게를 가진 물품 하나가 도착했다는 뜻이다. 기록에 등장하는 모든 물품의 무게는 C 이하이다. 물품이 도착하면 현재 상자에 담긴 무게와 새 물품의 무게를 더한다. 그 합이 C 이하이면 현재 상자에 새 물품을 담는다. 합이 C보다 크면 현재 상자를 먼저 출발시키고, 새 빈 상자를 작업대에 놓은 뒤 도착한 물품을 그 상자에 담는다. 이미 담은 물품을 다른 상자로 옮기거나 도착한 물품을 나중으로 미룰 수는 없다. 문자 '0'은 출발 지시를 뜻한다. 이 지시를 읽었을 때 현재 상자에 물품이 하나 이상 있으면 그 상자를 출발시키고 새 빈 상자를 놓는다. 현재 상자가 비어 있으면 아무 일도 일어나지 않는다. 따라서 빈 상자는 출발한 상자의 수에 포함되지 않는다. 무게 합이 정확히 C가 된 상자도 즉시 출발하지는 않는다. 이후 물품을 담을 수 없게 되거나 출발 지시를 읽을 때까지 작업대에 남는다. 기록을 모두 읽으면 작업을 그대로 끝낸다. 마지막에 작업대에 남은 상자는 물품이 들어 있어도 자동으로 출발시키지 않는다. 출발한 상자의 수, 출발한 상자 중 가장 무거운 상자의 무게 합, 마지막에 작업대에 남은 물품의 무게 합을 구해야 한다. 출발한 상자가 하나도 없으면 가장 무거운 상자의 무게 합은 0으로 정한다. 가장 무거운 상자가 여러 개여도 그 무게 합만 구하므로 별도의 순서를 정하지 않는다.

입력

첫째 줄에 기록의 길이 N과 상자의 무게 제한 C가 공백으로 구분되어 주어진다. N과 C는 정수이며 1 ≤ N ≤ 100,000, 1 ≤ C ≤ 9이다.
둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. S의 각 문자는 '0'부터 C를 나타내는 숫자 문자까지 중 하나이다. '0'은 출발 지시이며, 나머지 문자는 해당 무게의 물품 도착을 뜻한다.

출력

출발한 상자의 수, 출발한 상자 중 가장 큰 무게 합, 작업 종료 시 현재 상자에 담긴 무게 합을 이 순서대로 공백으로 구분하여 한 줄에 출력한다. 출발한 상자가 없으면 두 번째 값은 0이다. 현재 상자가 비어 있으면 세 번째 값은 0이다.

예제 입력 1

10 7
3402501604

예제 출력 1

3 7 4

예제 입력 2

7 5
2231054

예제 출력 2

3 5 4

예제 입력 3

6 9
000123

예제 출력 3

0 0 6
힌트 펼치기
  • 현재 상자에 담긴 무게 합을 하나의 변수로 관리한다.
  • 상자가 출발하는 두 가지 상황에서 출발 횟수와 최대 무게를 갱신한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류구현시뮬레이션

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)