Devin.KR

← 전체 문제

문제 1010 · 기초 3

서점 재고 정리

정렬 · 문자열

테스트별 제한 1500ms · 브라우저 채점

문제

동네 서점이 재고표를 다시 뽑으려 한다. 책마다 고유한 코드와 재고 수가 있다. 재고가 0 인 책은 표에서 뺀다. 남은 책은 재고가 많은 순서로 적고, 재고가 같으면 코드의 사전 순서로 적는다. 사전 순서는 글자의 ASCII 코드 순서이며(숫자가 영문 대문자보다 앞선다), 한 코드가 다른 코드의 앞부분이면 짧은 쪽이 먼저다. 재고가 있는 책이 한 권도 없으면 EMPTY 를 출력한다.

입력

첫째 줄에 책의 수 N (1 ≤ N ≤ 20,000) 이 주어진다.

다음 N개 줄에 코드와 재고 수가 공백으로 구분되어 주어진다. 코드는 영문 대문자와 숫자로 된 1~10 글자이고 서로 다르다. 재고 수는 0 이상 1,000,000 이하의 정수다.

출력

정렬한 순서대로 한 줄에 한 권씩 코드와 재고 수를 공백으로 구분해 출력한다. 출력할 책이 없으면 EMPTY 를 출력한다.

예제 입력 1

5
B12 3
A7 10
C1 0
A10 3
ZZ 10

예제 출력 1

A7 10
ZZ 10
A10 3
B12 3

예제 입력 2

2
Q 0
R 0

예제 출력 2

EMPTY
힌트 펼치기
  • 정렬 기준이 둘이면 (−재고, 코드) 같은 묶음을 기준으로 삼으면 한 번에 정렬된다.
  • 재고는 숫자로 비교해야 한다. 문자열로 비교하면 "9" 가 "10" 보다 뒤로 간다.

관련 장

파이썬 리스트·튜플·딕셔너리·셋

자바스크립트 배열 고차 함수

출처: Devin.KR 자체 제작

풀이 작성

코드는 서버로 전송하지 않습니다. 테스트가 공개되는 연습용 채점으로, 대회·인증용이 아닙니다.

Python 채점은 준비 중입니다.

Tab: 공백 2칸 · Esc 후 Tab: 다음 요소로 이동. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

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

    로그인 여부와 관계없이 이 브라우저에만 최근 제출 50개를 저장합니다.

    이 브라우저의 제출 기록