본문으로 이동
코드패스 by Devin.KR

문제 4751 · 킬로 IV

카페의 전달 선반

댓글 0
인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms측정하지 않음0000.00%

문제

한 카페는 완성된 음료를 손님에게 전달하기 전에 긴 선반에 한 줄로 놓는다. 바쁜 시간에도 직원마다 같은 순서로 음료를 놓을 수 있도록, 카페는 음료에 기록된 두 값을 이용하는 정리 규칙을 만들었다. 각 음료에는 손님이 찾아오기로 한 시각과 보관 민감도가 적혀 있다. 보관 민감도는 음료를 오래 두었을 때 품질이 달라지기 쉬운 정도를 나타내며, 값이 클수록 먼저 확인해야 한다. 오늘 정리할 음료는 N개다. 음료에는 입력된 순서대로 1번부터 N번까지 서로 다른 번호가 붙는다. 모든 음료는 이미 완성되어 있으며, 직원은 이 음료들을 선반의 왼쪽부터 오른쪽까지 하나씩 배치하려 한다. 선반에는 모든 음료를 놓을 수 있고, 음료를 옮기는 데 걸리는 시간은 고려하지 않는다. 배치할 때는 먼저 손님이 찾아오기로 한 시각을 비교한다. 더 이른 시각의 음료가 반드시 왼쪽에 있어야 한다. 찾아올 시각이 같다면 보관 민감도를 비교하여, 민감도가 더 큰 음료를 왼쪽에 놓는다. 찾아올 시각과 보관 민감도가 모두 같다면 번호가 더 작은 음료를 왼쪽에 놓는다. 이 세 규칙은 적힌 순서대로 적용하며, 앞의 규칙으로 순서를 정할 수 있다면 뒤의 규칙은 사용하지 않는다. 예를 들어 찾아올 시각이 더 이른 음료는 민감도가 작더라도 더 늦은 시각의 음료보다 왼쪽에 놓인다. 반면 찾아올 시각이 같은 두 음료 사이에서는 민감도가 큰 음료를 우선한다. 두 값이 모두 같은 음료도 합치거나 생략하지 않고 각각 선반의 한 자리를 차지한다. 이 작업은 음료를 만드는 순서나 실제로 전달하는 시각을 정하는 작업이 아니다. 주어진 기록만으로 선반에 놓을 순서를 정한다. 위 규칙을 모두 적용했을 때 선반의 가장 왼쪽부터 가장 오른쪽까지 놓이는 음료 번호를 출력하는 프로그램을 작성한다. 마지막 규칙에 사용하는 번호가 모두 다르므로 올바른 배치 순서는 항상 하나로 정해진다.

입력

첫째 줄에 음료 수 N이 주어진다. N은 1 이상 30,000 이하의 정수다.
다음 N개의 줄에 음료의 찾아올 시각 T와 보관 민감도 H가 공백으로 구분되어 주어진다. T와 H는 각각 0 이상 1,000,000,000 이하의 정수다.
이 N개 줄 중 i번째 줄에 주어진 음료의 번호는 i다.

출력

선반의 왼쪽부터 오른쪽까지 놓이는 음료 번호 N개를 공백으로 구분하여 한 줄에 출력한다. 각 번호는 정확히 한 번씩 출력해야 한다.

예제 입력 1

6
12 4
8 2
12 9
8 7
12 9
15 100

예제 출력 1

4 2 3 5 1 6

예제 입력 2

4
0 0
0 0
0 0
0 0

예제 출력 2

1 2 3 4

예제 입력 3

1
1000000000 0

예제 출력 3

1
힌트 펼치기
  • 음료마다 찾아올 시각, 보관 민감도, 번호를 차례로 비교한다. 보관 민감도만 내림차순이라는 점에 주의한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류정렬

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

JavaScript 시간 제한 = 문제 시간 제한 × 1 + 0초. 문제별 예외는 아래 표에 반영됩니다.

Node.js 전체 API는 지원하지 않습니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

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

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      댓글 0

      로그인하면 댓글을 쓸 수 있습니다.

      댓글 접기·펼치기

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      JavaScript브라우저 JavaScript1000ms / 테스트측정하지 않음
      TypeScriptTypeScript 5.9.31000ms / 테스트측정하지 않음
      Python 3Pyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음
      CYoWASP Clang 222000ms / 테스트측정하지 않음
      C++YoWASP Clang 22 / libc++2000ms / 테스트측정하지 않음
      JavaOpenJDK javac + TeaVM (Java 21 문법)3000ms / 테스트측정하지 않음
      LuaWasmoon 1.16.0 / Lua 5.43000ms / 테스트측정하지 않음
      RubyRuby 3.4 / ruby.wasm 2.10.15000ms / 테스트측정하지 않음
      SchemeBiwaScheme 0.8.35000ms / 테스트측정하지 않음
      PrologSWI-Prolog / swipl-wasm 8.2.55000ms / 테스트측정하지 않음
      PerlPerl 5.28 / WebPerl 0.09-beta5000ms / 테스트측정하지 않음