ํ๋ํฐ๋!๐
์ง์ง ์ด๋ ค์ ๋ค....
๋ชใ
์๊ฐ ๋ถ์ก๊ณ ์์ด๋ ์ํ๋ ค์ ๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์ง๋ง,,,,,
๊ณ์๋๋ ์คํจ!!!
๊ทธ๋์ ๊ทธ๋ฅ ์ฐ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฒ๋ฆฌํด๋ณด๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค,..... ์ฒ์์ ์ด๊ฑฐ ๋ฌด์กฑ๊ถ ์๊ฐ์ด๊ณผ๋ผ๊ณ ์๊ฐํ๋๋ฐ
์ด๋ผ...? ํต๊ณผ!@!!!@!@!@!@! ๋์ต์!!!
ํ์ด
์ฃผ์ด์ง N๊ฐ์ ์ซ์๋ 1,2,3,4,...., N ์
- ์ผ์ชฝ์ผ๋ก k1๋ฒ ๋ฐ๊ธฐ
- p~q ๊ตฌ๊ฐ ๋ค์ง๊ธฐ
- ์ผ์ชฝ์ผ๋ก k2๋ฒ ๋ฐ๊ธฐ
๊ณผ์ ์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด๊ฒ์ ๋ฐ๋๋ก!! ์งํ
์ฌ๊ธฐ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ 1 <= k1, k2 < N
๋ฌด์กฐ๊ถ 1๋ฒ์ ์ฎ๊ฒจ์ผํ๊ณ , N๋ฒ ์ด๋์์ผ์ ์๋ ์์น ๊ทธ๋๋ก ์ด๋ํ๋ ๊ฒ์ ์๋จ!!!
๊ทธ๋์
- 1 ~ N๋ฒ ๋์ ๋ฐ๋๋ก ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํค๋ฉด์ ์ ๋ค ์ฐจ์ด๊ฐ 1 or N-1 ์ด ์๋ ๊ตฌ๊ฐ์ ์ฐพ๋๋ค.
- ์ด ์ฐพ์ ๊ฒ๋ค์ ๋ชจ๋ ์ ์ฅ! ->
candidates
- ์ค์ํ ๊ฒ์ ๊ตฌ๊ฐ ์์น(p, q)์ ์ด๋์ํจ ํ์(k2)๋ฅผ ํจ๊ป ์ ์ฅ
- ์ด ์ฐพ์ ๊ฒ๋ค์ ๋ชจ๋ ์ ์ฅ! ->
- candidates๋ฅผ ๋ชจ๋ ๋๋ฉด์ (p, q) ๋ถ๋ถ์ ๋ค์ง์ ํ์ 1~N-1๋ฒ์ ์ด๋์ผ๋ก ์๋ ์์ 1,2,3,....,N ์ด ๊ฐ๋ฅํ์ง๋ฅผ ์ฒดํฌํ๋ฉด ๋!!
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์
N = 8 ์ผ๋,
- 8 7 6 5 4 3 2 1 ์ฒ๋ผ ์ ์ฒด๊ฐ ์ญ์์ผ๋ก ๋ค์งํ ๊ฒฝ์ฐ
- 7 6 5 4 3 2 1 8 ์ฒ๋ผ 1 ~ N-1 ๊ตฌ๊ฐ์ด ๋ค์งํ ๊ฒฝ์ฐ
- 1 8 7 6 5 4 3 2 ์ฒ๋ผ 2 ~ N ๊ตฌ๊ฐ์ด ๋ค์งํ ๊ฒฝ์ฐ
์ด๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ์๋ ์ฒ์์ candidates๊ฐ ํ๋๋ ๋์ค์ง ์๋๋ค....
๊ทธ๋์ ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ๋ฐ๋ก ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ค.
์ด๋ฏธ ์์ ์ฝ๋์์ N-1๋ฒ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋๋ ์ํ!
์ฆ, 8 7 6 5 4 3 2 1 -> 7 6 5 4 3 2 1 8 == ์ผ์ชฝ์ผ๋ก 1๋ฒ ์ด๋ํ ์ํ!
์ด ์ํ์์ ๋ค์ 1๋ฒ ~ N-1๋ฒ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํค๋ฉด์
8 7 6 5 4 3 2 1 ์์ผ๋ก ์ ๋ ฌ๋๋ ํ์์ ์ฐพ์ผ๋ฉด ๋!!
์ด ๊ฒฝ์ฐ์๋ k1 = 1; (p, q) = (1, N); k2 = time; ์ด ๋๋ค!
์์๋ก ์ฝ๋๋ฅผ ํ์ธ!
N = 10 9 2 1 10 3 4 5 6 7 8
candidates = {{3,5,1},{4,6,2},{5,7,3},{6,8,4},{7,9,5},{2,8,7},{3,9,8}}
1) {p,q,t} = {3,5,1}
1. ์ค๋ฅธ์ชฝ์ผ๋ก t๋ฒ ์ด๋ = 8 9 2 1 10 3 4 5 6 7
2. (p, q) ๋ค์ง๊ธฐ = 8 9 10 1 2 3 4 5 6 7
3. 1 ~ N-1๋ฒ ์ด๋ํ๋ฉด์ ์์๋๋ก ์ค๋์ง ํ์ธ
1. 7 8 9 10 1 2 3 4 5 6
2. 6 7 8 9 10 1 2 3 4 5
3. 5 6 7 8 9 10 1 2 3 4
4. 4 5 6 7 8 9 10 1 2 3
5. 3 4 5 6 7 8 9 10 1 2
6. 2 3 4 5 6 7 8 9 10 1
7. 1 2 3 4 5 6 7 8 9 10
-> 7๋ฒ ์ด๋์ผ๋ก ์๋ ์์๋๋ก ๋ง๋ฌ!!
4. ์ฆ, 1 2 3 4 5 6 7 8 9 10 ์ k1 = 7๋ฒ ์ผ์ชฝ์ผ๋ก ์ด๋์ํค๊ณ , (3, 5) ๋ถ๋ถ์ ๋ค์ง๊ณ , k2 = 1๋ฒ ์ด๋์ํค๋ฉด
=> 9 2 1 10 3 4 5 6 7 8 ์ด ๋์ด!!!
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.*;
import java.util.stream.Collectors;
public class Main_BOJ_2478_์๋ฌผ์ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
List<Integer> q = new ArrayList<>();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
q.add(arr[i]);
}
List<int[]> candidates = new ArrayList<>();
for (int i = 1; i < N; i++) {
q.add(0, q.get(q.size() - 1));
q.remove(q.size() - 1);
List<Integer> tmp = new ArrayList<>();
for (int j = 1; j < N; j++) {
int t = Math.abs(q.get(j) - q.get(j - 1));
if (t != 1 && t != N - 1) tmp.add(j);
}
if (tmp.size() == 2) candidates.add(new int[]{tmp.get(0) + 1, tmp.get(1), i});
}
int time = -1;
for (int[] candidate : candidates) {
q = Arrays.stream(arr).boxed().collect(Collectors.toList());
for (int t = 0; t < candidate[2]; t++) {
q.add(0, q.get(q.size() - 1));
q.remove(q.size() - 1);
}
List<Integer> tmp = new ArrayList<>();
for (int i = 0; i < candidate[0] - 1; i++) {
tmp.add(q.get(i));
}
for (int i = candidate[1] - 1; i >= candidate[0] - 1; i--) {
tmp.add(q.get(i));
}
for (int i = candidate[1]; i < N; i++) {
tmp.add(q.get(i));
}
time = -1;
for (int i = 0; i < N - 1; i++) {
tmp.add(0, tmp.get(tmp.size() - 1));
tmp.remove(tmp.size() - 1);
if (tmp.get(0) == 1 && tmp.get(tmp.size() - 1) == N) {
time = i + 1;
break;
}
}
if (time > 0) {
System.out.println(time);
System.out.println(candidate[0] + " " + candidate[1]);
System.out.println(candidate[2]);
break;
}
}
if (time == -1) {
for (int i = 1; i < N; i++) {
q.add(0, q.get(q.size() - 1));
q.remove(q.size() - 1);
if (q.get(0) == N && q.get(q.size() - 1) == 1) {
time = i;
}
}
System.out.println(1);
System.out.println("1 " + N);
System.out.println(time);
}
}
}
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ BOJ / ๋ฐฑ์ค ] 2048 EASY (JAVA / ์๋ฐ) (0) | 2022.09.28 |
---|---|
[ BOJ / ๋ฐฑ์ค 17825 ] ์ฃผ์ฌ์ ์ท๋์ด ( ์๋ฐ / JAVA ) (0) | 2022.04.15 |
[ ๋ฐฑ์ค / BOJ 14594 ] ๋๋ฐฉ ํ๋ก์ ํธ - Small ( ์๋ฐ / JAVA ) (0) | 2022.03.08 |
[ ๋ฐฑ์ค / BOJ 13460 ] ๊ตฌ์ฌ ํ์ถ 2 ( ์๋ฐ / JAVA ) (0) | 2022.03.06 |
[ ๋ฐฑ์ค / BOJ 22861 ] ํด๋ ์ ๋ฆฌ - large ( JAVA / ์๋ฐ ) (0) | 2022.02.22 |