내 코드
package com.company;
import java.io.*;
import java.util.*;
public class Main {
static int N;
static int[] arr;
static LinkedList<Integer> ll = new LinkedList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < N; i++) {
ll.add(arr[i]);
}
for (int k1 = 1; Math.pow(2, k1) < N; k1++) {
for (int k2 = 1; Math.pow(2, k2) < N; k2++) {
boolean check = false;
ll.clear();
for (int i = 1; i <= N; i++) {
ll.add(i);
}
shuffle(k1);
shuffle(k2);
for (int i = 0; i < N; i++) {
if (arr[i] != ll.poll())
break;
if (i == N - 1)
check = true;
}
if (check) {
System.out.println(k1 + " " + k2);
return;
}
}
}
}
static void shuffle(int k) {
int bot = (int) Math.pow(2, k);
for (int i = 0; i < bot; i++) {
ll.add(0, ll.removeLast());
}
while (bot / 2 >= 1) {
for (int i = 0; i < bot / 2; i++) {
ll.add(0, ll.remove(bot - 1));
}
bot /= 2;
}
}
}
'코딩테스트 > [백준] 코딩테스트 연습' 카테고리의 다른 글
최소 힙 - 1927번 (0) | 2021.12.03 |
---|---|
0만들기 - 7490번 (0) | 2021.12.03 |
트리 순회 (0) | 2021.12.02 |
신입 사원 - 1946번 (0) | 2021.12.02 |
암호코드 - 2011번 (0) | 2021.12.01 |