문제 4372 · 바이트 I
단체 입차 전광판
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 주차장에서는 함께 도착한 차량들을 하나의 무리로 묶어 입차를 처리한다. 주차장에 주차할 수 있는 차량은 최대 C대이며, 기록을 처리하기 전에는 주차된 차량이 없다. 관리인은 시간순으로 남겨진 기록을 읽고 마지막 전광판에 표시할 값을 계산하려고 한다. 모든 차량은 주차 공간을 정확히 한 칸씩 차지하며, 기록 사이에 별도의 입차나 출차는 일어나지 않는다. 기록 하나는 문자 하나로 표현된다. 숫자 '1'부터 '9'까지는 해당 숫자만큼의 차량이 함께 입차를 요청했다는 뜻이다. 요청한 차량이 모두 들어갈 수 있으면 전부 입차시킨다. 빈 공간이 부족하면 그 무리의 차량은 한 대도 들어가지 못하며, 요청한 차량 수 전체를 입차 거절 차량 수에 더한다. 빈 공간만큼 일부 차량을 받아들이는 일은 없다. 거절된 차량은 이후 기록에 영향을 주지 않으며, 나중에 공간이 생겨도 자동으로 입차하지 않는다. 문자 'A'부터 'I'까지는 각각 1대부터 9대까지의 출차 요청을 뜻한다. 요청한 수만큼 차량이 주차되어 있으면 그 수만큼 출차시킨다. 주차된 차량이 요청보다 적으면 현재 주차된 차량만 모두 출차시키고, 부족한 수를 미처리 출차 요청 수에 더한다. 예를 들어 2대가 주차된 상태에서 'E'를 처리하면 주차된 차량은 0대가 되고 미처리 출차 요청 수는 3만큼 증가한다. 입차 거절 차량 수와 미처리 출차 요청 수는 서로 별도로 누적한다. 출차 요청은 개별 차량의 신원을 나타내지 않으므로 앞서 거절된 차량과 연결해서 해석하지 않는다. 각 기록을 왼쪽부터 정확히 한 번씩 처리한 뒤, 남아 있는 차량 수와 두 누적값을 구해야 한다. 처리할 기록이 하나뿐인 경우에도 같은 규칙을 적용하며, 누적된 항목이 없으면 그 값은 0이다.
입력
첫째 줄에 정수 N과 C가 공백으로 주어진다. 1 ≤ N ≤ 100,000, 1 ≤ C ≤ 1,000,000,000이다. 둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. S의 각 문자는 '1'부터 '9' 또는 'A'부터 'I' 중 하나이다. 문자열의 왼쪽부터 시간순으로 기록을 처리한다.
출력
모든 기록을 처리한 뒤의 주차 차량 수, 입차 거절 차량 수, 미처리 출차 요청 수를 이 순서대로 공백으로 구분하여 한 줄에 출력한다. 각 값은 정수로 출력한다.
예제 입력 1
6 5 32B4E1
예제 출력 1
1 4 2
예제 입력 2
4 1 9A1B
예제 출력 2
0 9 2
힌트 펼치기
- 현재 주차된 차량 수와 두 누적값을 각각 변수 하나로 관리한다.
- 입차 요청은 일부만 받아들일 수 없지만, 출차 요청은 가능한 만큼 처리한다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |