문제 3589 · 바이트 IV
환승역 보관함의 하루 정산
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
지하철 환승역에는 승객이 간단한 물품을 구매하는 무인 보관함이 있다. 백엔드 담당자는 보관함에서 전송한 처리 기록을 순서대로 반영하고, 하루 정산표를 만들어야 한다. 물품 종류는 K개이며 물품 코드는 1부터 K까지다. 각 물품에는 하루 동안 바뀌지 않는 판매 단가와 업무 시작 시점의 재고가 정해져 있다. 처리 기록 하나는 공백 없는 네 글자 문자열이다. 앞의 두 글자는 물품 코드를 두 자리 십진수로 적은 것이며, 코드가 한 자리이면 앞에 0을 붙인다. 세 번째 글자는 판매 요청을 뜻하는 S 또는 재입고를 뜻하는 R이다. 마지막 글자는 처리 수량을 나타내는 1부터 9까지의 숫자다. 예를 들어 03S4는 코드 3인 물품을 4개 판매해 달라는 요청이다. 기록은 입력에 등장한 순서대로 처리한다. 재입고 기록이면 해당 물품의 재고에 기록된 수량을 더한다. 판매 요청이면 요청 직전의 재고가 요청 수량 이상인지 확인한다. 충분하면 요청 수량만큼 재고를 줄이고, 그 수량을 판매 수량에 더한다. 재고가 부족하면 요청 전체를 거절하며 재고와 판매 수량을 모두 바꾸지 않는다. 일부 수량만 판매하는 일은 없다. 거절한 요청을 이후 재입고 뒤에 다시 처리하지도 않는다. 물품별 매출은 실제 판매 수량과 판매 단가를 곱한 값이다. 재입고는 매출을 발생시키지 않으며, 거절한 요청도 매출에 포함하지 않는다. 모든 기록을 처리한 뒤 매출이 큰 물품부터 정산표에 적는다. 매출이 같으면 물품 코드가 작은 것이 먼저다. 판매되지 않은 물품도 빠짐없이 정산표에 포함한다. 각 물품의 코드, 실제 판매 수량, 매출, 마지막 재고를 이 순서로 출력하는 프로그램을 작성한다.
입력
첫째 줄에 정수 K와 N이 주어진다. 1 ≤ K ≤ 99이며 1 ≤ N ≤ 75,000이다. 다음 K개 줄에는 코드 1인 물품부터 코드 K인 물품까지의 판매 단가 P와 시작 재고 A가 주어진다. P와 A는 정수이며 1 ≤ P ≤ 1,000,000, 0 ≤ A ≤ 1,000,000이다. 다음 N개 줄에는 처리 기록이 하나씩 주어진다. 각 기록은 정확히 네 글자이며 형식은 CC T Q를 공백 없이 붙인 것이다. CC는 01부터 K까지의 유효한 두 자리 코드, T는 S 또는 R, Q는 1부터 9까지의 한 자리 숫자다. 기록 안에는 공백이 없다.
출력
정산표의 정렬 순서대로 K개 줄을 출력한다. 각 줄에는 물품 코드, 실제 판매 수량, 매출, 마지막 재고를 공백으로 구분하여 출력한다. 출력의 물품 코드는 앞에 0을 붙이지 않은 정수로 적는다. 판매가 한 번도 성사되지 않은 물품의 판매 수량과 매출은 각각 0이다.
예제 입력 1
3 6 100 5 200 1 50 0 01S4 02S2 03R3 03S2 02R2 02S3
예제 출력 1
2 3 600 0 1 4 400 1 3 2 100 1
예제 입력 2
2 4 10 0 20 0 01S1 02S9 01R2 02R1
예제 출력 2
1 0 0 2 2 0 0 1
예제 입력 3
2 2 30 3 20 4 02S3 01S2
예제 출력 3
1 2 60 1 2 3 60 1
힌트 펼치기
- 기록을 읽는 순서와 정산표를 출력하는 순서는 서로 다르다.
- 판매 수량과 남은 재고를 물품별로 저장한 뒤 정렬한다.
알고리즘 분류
구현정렬문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |