문제 4738 · 바이트 I
원형 택배 선반
댓글 0| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms | 측정하지 않음 | 0 | 0 | 0 | 0.00% |
문제
택배 분류실에는 N개의 칸이 원형으로 이어진 선반이 있다. 각 칸에는 택배가 정확히 하나씩 놓여 있다. 작업자는 선반 앞의 고정된 기준선에서 시작하여 시계 방향으로 칸을 세고, 그 순서대로 현재 위치 번호 1부터 N을 붙인다. 위치 번호는 선반에 적힌 고유 번호가 아니라 기준선에서 바라본 현재 순서를 뜻한다. 따라서 선반이 회전하면 같은 택배의 위치 번호가 달라질 수 있다. 작업 기록에는 두 종류의 명령이 들어 있다. R k는 선반을 시계 방향으로 k칸 회전시키는 명령이다. 이 회전은 기존 위치 N의 택배가 위치 1로 이동하는 변화를 한 칸 회전으로 정의한다. 따라서 한 칸 회전한 뒤 기존 위치 1의 택배는 위치 2에 놓인다. k가 N 이상일 수도 있으며, N칸 회전하면 모든 택배가 회전 전과 같은 위치로 돌아온다. k가 0이면 아무 변화도 없다. S a b는 명령을 실행하는 시점의 위치 a와 위치 b에 놓인 택배를 서로 바꾸는 명령이다. a와 b가 같으면 선반의 상태는 변하지 않는다. 교환을 위해 선반을 추가로 회전시키지는 않는다. 이전 회전 명령으로 위치가 바뀌었다면 그 결과를 반영한 위치의 택배를 교환해야 한다. 택배에는 양의 정수인 분류 표식이 붙어 있다. 서로 다른 택배에 같은 표식이 붙을 수 있으므로 표식이 같다는 이유로 택배를 하나로 합치거나 제거하지 않는다. 모든 명령은 입력에 주어진 순서대로 정확히 한 번씩 실행한다. 명령을 모두 실행한 뒤 기준선에서 시작하여 시계 방향으로 읽은 분류 표식을 구하는 프로그램을 작성한다. 명령이 하나도 없다면 처음에 주어진 순서가 그대로 결과가 된다.
입력
첫째 줄에 정수 N과 Q가 주어진다. 1≤N≤10,000, 0≤Q≤10,000이다. 둘째 줄에 초기 위치 1부터 N까지의 분류 표식 A_1,…,A_N이 주어진다. 각 표식은 1 이상 1,000,000,000 이하의 정수다. 다음 Q개 줄에 명령이 하나씩 주어진다. 명령은 R k 또는 S a b 형식이다. k,a,b는 정수이며 0≤k≤1,000,000,000, 1≤a,b≤N이다.
출력
모든 명령을 실행한 뒤 현재 위치 1부터 N까지의 분류 표식을 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
5 3 10 20 30 40 50 R 2 S 1 4 R 1
예제 출력 1
30 20 50 10 40
예제 입력 2
1 4 7 R 1000000000 S 1 1 R 0 S 1 1
예제 출력 2
7
예제 입력 3
4 0 8 8 2 8
예제 출력 3
8 8 2 8
힌트 펼치기
- 배열을 실제로 회전시키는 대신, 현재 위치 1이 배열의 어느 칸에 해당하는지 저장한다.
관련 서재 장
알고리즘 분류
배열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
댓글 0
로그인하면 댓글을 쓸 수 있습니다.
댓글 접기·펼치기
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| JavaScript | 브라우저 JavaScript | 1000ms / 테스트 | 측정하지 않음 |
| TypeScript | TypeScript 5.9.3 | 1000ms / 테스트 | 측정하지 않음 |
| Python 3 | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음 |
| C | YoWASP Clang 22 | 2000ms / 테스트 | 측정하지 않음 |
| C++ | YoWASP Clang 22 / libc++ | 2000ms / 테스트 | 측정하지 않음 |
| Java | OpenJDK javac + TeaVM (Java 21 문법) | 3000ms / 테스트 | 측정하지 않음 |
| Lua | Wasmoon 1.16.0 / Lua 5.4 | 3000ms / 테스트 | 측정하지 않음 |
| Ruby | Ruby 3.4 / ruby.wasm 2.10.1 | 5000ms / 테스트 | 측정하지 않음 |
| Scheme | BiwaScheme 0.8.3 | 5000ms / 테스트 | 측정하지 않음 |
| Prolog | SWI-Prolog / swipl-wasm 8.2.5 | 5000ms / 테스트 | 측정하지 않음 |
| Perl | Perl 5.28 / WebPerl 0.09-beta | 5000ms / 테스트 | 측정하지 않음 |