• 문제 링크
https://www.acmicpc.net/problem/3294
• 풀이 코드
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int[] arr = new int[read()];
for (int i = 0; i < arr.length; ) arr[i] = ++i;
int k = read();
while (k-- > 0) paste(arr, read(), read(), read());
for (int i = 0; i < 10; i++) sb.append(arr[i]).append('\n');
bw.write(sb.toString());
bw.flush();
}
public static void paste(int[] arr, int from, int to, int tgt) {
int len = to - --from;
if (len == 0) return;
if (tgt < from) {
reverse(arr, tgt, from);
reverse(arr, from, to);
reverse(arr, tgt, to);
} else {
reverse(arr, from, to);
reverse(arr, to, tgt + len);
reverse(arr, from, tgt + len);
}
}
private static void reverse(int[] arr, int from, int to) {
while (from < --to) {
int i = arr[from];
arr[from++] = arr[to];
arr[to] = i;
}
}
private static int read() throws IOException {
int c, n = System.in.read() & 15;
while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);
return n;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 29721 변형 체스 놀이 : 다바바(Dabbaba) - Data Structure / Java (0) | 2025.09.07 |
---|---|
[백준] 25816 Overall Ranking - Data Structure / Java (0) | 2025.09.06 |
[백준] 1996 지뢰 찾기 - Implementation / Java (0) | 2025.09.04 |
[백준] 7600 문자가 몇갤까 - Implementation / Java (0) | 2025.09.03 |
[백준] 1392 노래 악보 - Implementation / Java (0) | 2025.09.02 |
댓글