๐ ๋ฌธ์
https://www.acmicpc.net/problem/1377

๐ ์์ด๋์ด
๋ฒ๋ธ ์ํธ
- ๋ฒ๋ธ ์ํธ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ธ์ ํ ๋ ๊ฐ์ ๋น๊ตํ๋ฉด์,
- ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ๋ฐ์ด๋ด๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. (์ฆ ์์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ํ๊ณ ์๋ค)
- ํ ํจ์ค๋ฅผ ๋ ๋๋ง๋ค ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋์ผ๋ก ๋ณด๋ด์ง๋ค.
ํต์ฌ ์ธ์ฌ์ดํธ
- ๋ฒ๋ธ ์ํธ์์๋ ํฐ ๊ฐ์ด ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ์ด๋ํ๋ฏ๋ก,
- ๊ฐ์ฅ ๋ง์ด ์์ง์ธ ์์๊ฐ ์ ๋ ฌ ์๋ฃ ์์ ์ ๊ฒฐ์ ํ๋ค. (์ผ์ชฝ์ผ๋ก ์ด๋ํ๊ฒ๋ค)
- ์ด๋ ๊ทธ ์์๊ฐ ์ ๋ ฌ๋ ์์น์ ๋๋ฌํ๊ธฐ๊น์ง ๋ช ๋ฒ์ ํจ์ค๊ฐ ํ์ํ์ง๊ฐ ๊ด๊ฑด์ด๋ค.
๊ณ์ฐ ๋ฐฉ์
- ์ ๋ ฌ ์ ๋ฐฐ์ด์์ ๊ฐ ๊ฐ์ ์๋ ์ธ๋ฑ์ค - ์ ๋ ฌ๋ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๋ค.(์ ๋ ฌ๋ ์์น๋ณด๋ค ์๋ ์ธ๋ฑ์ค๊ฐ ๋ค์ ์๋ ๊ฐ, ์์ผ๋ก ์ด๋ํ ๊ฒ๋ค)
- ๊ฐ์ฅ ํฐ ์ด๋ ๊ฑฐ๋ฆฌ์ +1์ ํด์ฃผ๋ฉด ์ ๋ต์ด ๋๋ค. (๋ง์ง๋ง์ผ๋ก ์์ง์ธ ๊ทธ ๊ฐ์ด ์ ์๋ฆฌ ๊ฐ ๋ค์ ํจ์ค์ swap์ด ๋ ์ด์ ์์ด์ ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ.)
๐ ํ์ด
package ๋ฐฑ์ค.์ ๋ ฌ;
import java.io.*;
import java.util.*;
public class Boj_1377_๋ฒ๋ธ์ํธ {
static class Pair {
int value, index;
Pair(int value, int index) {
this.value = value;
this.index = index;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Pair[] arr = new Pair[n];
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(br.readLine());
arr[i] = new Pair(num, i); // ๊ฐ + ์๋ ์ธ๋ฑ์ค ์ ์ฅ
}
Arrays.sort(arr, Comparator.comparingInt(a -> a.value)); // ๊ฐ ๊ธฐ์ค ์ ๋ ฌ
int maxMove = 0;
for (int i = 0; i < n; i++) {
// ์๋ ์ธ๋ฑ์ค - ์ ๋ ฌ๋ ์ธ๋ฑ์ค
int move = arr[i].index - i;
maxMove = Math.max(maxMove, move);
}
System.out.println(maxMove + 1); // ํจ์ค ์ = ์ต๋ ์ด๋ ๊ฑฐ๋ฆฌ + 1
}
}

'๋ฐฑ์ค(boj)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JAVA]1153 ๋ค ๊ฐ์ ์์ (1) | 2025.04.13 |
|---|---|
| [JAVA]16947 ์์ธ ์งํ์ฒ 2ํธ์ (0) | 2025.04.13 |
| [JAVA]11437 LCA ๊ณตํต ๋ถ๋ชจ ๋ ธ๋ ์ฐพ๊ธฐ(๊ณจ๋ 3) (0) | 2023.09.20 |
| [JAVA]13418 ํ๊ต ํ๋ฐฉํ๊ธฐ, ๊ณจ๋ 3 (0) | 2023.08.21 |
| [JAVA]5427 ๋ถ ๊ณจ๋4 (0) | 2023.08.21 |