상자 무게순 정리
문제
어느 물류 창고에 상자가 N개 들어왔다. 상자마다 무게가 적혀 있고, 겉면에는 알파벳으로 된 표식이 붙어 있다. 표식이 서로 같은 상자가 있을 수도 있다.
창고 직원은 들어온 상자를 무게가 가벼운 것부터 차례로 선반에 올리려고 한다. 무게가 같은 상자가 둘 이상 있으면 창고에 먼저 들어온 상자를 먼저 올린다.
예를 들어 N=3개의 상자가 다음의 표와 같이 들어왔다고 해보자. 번호가 작을수록 먼저 들어온 상자다.
| 들어온 순서 | 1 | 2 | 3 |
|---|---|---|---|
| 무게 | 147 | 125 | 83 |
| 표식 | XHzKT | GzBJm | EKDM |
무게가 가벼운 것부터 올리면 선반에 놓이는 순서는 다음과 같다.
| 선반 순서 | 1 | 2 | 3 |
|---|---|---|---|
| 무게 | 83 | 125 | 147 |
| 표식 | EKDM | GzBJm | XHzKT |
무게가 같은 상자가 섞여 있는 경우도 보자. N=5개의 상자가 다음의 표와 같이 들어왔다고 해보자.
| 들어온 순서 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 무게 | 40 | 12 | 40 | 12 | 40 |
| 표식 | ab | cd | ef | gh | ij |
무게가 12인 상자가 둘, 40인 상자가 셋이다. 무게가 같은 상자끼리는 먼저 들어온 쪽을 앞에 두므로 선반에 놓이는 순서는 다음과 같다. 무게가 12인 두 상자 가운데 2번이 4번보다 먼저 들어왔으므로 2번이 앞에 온다.
| 선반 순서 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 무게 | 12 | 12 | 40 | 40 | 40 |
| 표식 | cd | gh | ab | ef | ij |
N개의 상자에 대한 정보가 주어졌을 때, 선반에 올리는 순서대로 각 상자의 무게와 표식을 출력하는 프로그램을 작성하여라.
상자는 100,000개까지 들어올 수 있다. 무게가 같은 상자가 많이 섞여 있어도 먼저 들어온 상자가 먼저 올라가는 순서는 흔들려서는 안 된다.
입출력 예시
예시 1
입력
3 147 XHzKT 125 GzBJm 83 EKDM
출력
83 EKDM 125 GzBJm 147 XHzKT
예시 2
입력
1 153 oPvf
출력
153 oPvf
예시 3
입력
5 3 yvxH 187 csB 96 HsiH 8 rtc 152 ah
출력
3 yvxH 8 rtc 96 HsiH 152 ah 187 csB
입력 조건
가장 먼저 상자의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수다.
이어서 N개의 줄에 걸쳐 상자의 정보가 창고에 들어온 순서대로 한 줄에 하나씩 주어진다. 각 줄에는 그 상자의 무게와 표식이 공백 하나로 구분되어 주어진다.
무게는 1 이상 200 이하의 자연수다.
표식은 알파벳 대문자와 소문자로만 이루어진 문자열이고, 길이는 1 이상 10 이하다.
무게가 같은 상자가 여럿 있을 수 있고, 표식이 같은 상자도 여럿 있을 수 있다.
출력 조건
선반에 올리는 순서대로 상자의 정보를 한 줄에 하나씩 출력한다. 각 줄에는 그 상자의 무게와 표식을 공백 하나로 구분해 출력한다.
상자를 모두 출력한 다음에 빈 줄 하나를 더 출력한다.
채점은 출력을 기대값과 글자 하나까지 견준다. 마지막 빈 줄이 없으면 순서를 맞게 구했어도 틀린 답으로 처리된다. 예를 들어 상자가 하나뿐일 때는 그 상자의 줄 하나를 출력한 뒤에 빈 줄 하나를 더 출력한다.
요구사항
- 입력은 표준 입력으로 받고 답은 표준 출력으로 내보냅니다
- 무게가 가벼운 상자가 앞에 옵니다
- 무게가 같은 상자끼리는 창고에 먼저 들어온 쪽이 앞에 옵니다. 이 조건이 이 문제의 핵심입니다
- 각 줄에는 무게와 표식을 공백 하나로 구분해 출력합니다. 줄 끝에는 공백을 붙이지 않습니다
- 상자를 모두 출력한 뒤에 빈 줄 하나를 더 출력합니다
- 채점은 출력을 기대값과 글자 하나까지 견줍니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 케이스는 15개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
1 153 oPvf
153 oPvf
3 147 XHzKT 125 GzBJm 83 EKDM
83 EKDM 125 GzBJm 147 XHzKT
5 3 yvxH 187 csB 96 HsiH 8 rtc 152 ah
3 yvxH 8 rtc 96 HsiH 152 ah 187 csB
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.