문제 4582 · 바이트 I
도서관 분류별 대출 집계
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
도서관 데이터 담당자는 여러 대출 창구에서 모은 표를 이용하여 분류별 대출량을 정리한다. 창구마다 기록을 따로 만들기 때문에 같은 분류가 여러 행에 나타날 수 있다. 담당자가 받은 파일은 각 행에 분류 코드와 대출 건수를 쉼표로 구분하여 적은 CSV 형식이다. 파일의 첫 줄에는 자료 행의 수가 주어지며, 열 이름을 적은 머리글 행은 없다. 분류 코드는 영문 대문자 한 글자이고, 대출 건수는 0 이상 9 이하의 정수다. 자료 행에는 공백이나 따옴표가 없으며 쉼표는 정확히 하나만 들어 있다. 예를 들어 A,3은 분류 A에서 대출 세 건이 기록되었다는 뜻이다. 같은 내용의 행이 여러 번 나타나더라도 서로 다른 창구 또는 서로 다른 시점의 기록이므로 모두 합산해야 한다. 대출 건수가 0인 행도 올바른 기록이며, 다른 행을 취소하거나 집계를 초기화하는 의미는 없다. 보고서에는 분류별 대출 건수의 합이 양수인 분류만 실어야 한다. 입력에 등장하지 않은 분류와 등장했지만 합이 0인 분류는 모두 제외한다. 보고서의 행은 합계가 큰 분류부터 배치하고, 합계가 같다면 분류 코드가 알파벳순으로 앞서는 분류를 먼저 배치한다. 따라서 각 분류는 보고서에 최대 한 번만 나타나며, 입력에서 처음 나타난 순서나 창구 기록의 순서는 결과에 영향을 주지 않는다. 담당자는 완성된 보고서를 다른 표 처리 프로그램에 전달하려 한다. 이를 위해 각 출력 행에는 분류 코드와 합계를 공백 하나로 구분하여 적는다. 합계가 양수인 분류가 하나도 없다면 빈 보고서 대신 NONE이라는 문자열을 한 줄에 출력한다. 주어진 모든 자료 행을 반영하여 이 규칙에 맞는 보고서를 만드는 프로그램을 작성한다.
입력
첫째 줄에 자료 행의 수 N이 주어진다. N은 1 이상 90,000 이하의 정수다. 다음 N개의 줄에는 C,V 형식의 자료 행이 주어진다. C는 A부터 Z까지의 영문 대문자 한 글자이고, V는 0 이상 9 이하의 정수다. 각 자료 행에는 공백과 따옴표가 없으며, C와 V 사이에 쉼표 하나가 있다. 같은 분류와 같은 내용의 행이 반복될 수 있다.
출력
합계가 양수인 각 분류에 대해 분류 코드와 합계를 공백 하나로 구분하여 한 줄씩 출력한다. 합계의 내림차순으로 출력하고, 합계가 같으면 분류 코드의 알파벳순으로 출력한다. 출력할 분류가 없다면 NONE을 한 줄에 출력한다.
예제 입력 1
8 A,3 B,2 A,4 C,0 B,5 D,7 C,1 D,0
예제 출력 1
A 7 B 7 D 7 C 1
예제 입력 2
3 A,0 Z,0 A,0
예제 출력 2
NONE
힌트 펼치기
- 분류 코드마다 합계를 저장한 뒤, 합계가 양수인 분류를 정렬한다.
알고리즘 분류
문자열집계정렬풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |