Tags
- ์๋ฎฌ๋ ์ด์
- sort
- ๊ตฌํ
- ๋ฐฑํธ๋ํน
- greedy
- ๊น์ด ์ฐ์ ํ์
- dfs
- ๊ทธ๋ํ ํ์
- ๋๋น ์ฐ์ ํ์
- LV2
- stack
- BFS
- ์ ์๋ก
- DP
- BOJ
- ์ํ
- ์ ๋ ฌ
- Python
- PGM
- Study
- ๊ทธ๋ํ ์ด๋ก
- ๊ต์ฌ
- Java
- ๋ฌธ์์ด
- Dynamic Programming
- ์๋ฃ๊ตฌ์กฐ
- SpringBoot
- queue
- CodingTest
- Brute Force Algorithm
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_11054 : ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ค๊ฐ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ํ ๋ด๋ฆผ์ฐจ์์ด ์ด์ด์ง๋ ์์ด์ ๋ฐ์ดํ ๋ ์์ด์ด๋ผ๊ณ ํ๋ค.
- ์ฃผ์ด์ง๋ ์์ด์ ๋ถ๋ถ ์์ด ์ค ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ์์ด์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ๊ฐ ์ธ๋ฑ์ค ๋ณ๋ก ๊ฐ์ฅ ๊ธด ์ค๋ฆ์ฐจ์ ์์ด๊ณผ ๊ฐ์ฅ ๊ธด ๋ด๋ฆผ์ฐจ์ ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐ๋ก ๊ตฌํด ์ ์ฅํ๋ค.
- ๊ฐ์ ์ธ๋ฑ์ค์ ๋ ๊ฐ์ ํฉ ์ค ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] A = new int[N];
int[] up = new int[N];
int[] down = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
// ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด
for (int i = 1; i < N; i++) {
for (int j = 0; j < i; j++) {
if (A[i] > A[j])
up[i] = Math.max(up[i], up[j] + 1);
}
}
// ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด
for (int i = N - 1; i >= 0; i--) {
for (int j = i + 1; j < N; j++) {
if (A[i] > A[j])
down[i] = Math.max(down[i], down[j] + 1);
}
}
int max = 0;
for (int i = 0; i < N; i++) {
max = Math.max(max, up[i] + down[i]);
}
bw.write(Integer.toString(max + 1));
bw.flush();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ฃผ์ด์ง ์์ด์ intํ ๋ฐฐ์ด A์ ์ ์ฅ ํ ์์์ ๋ค๋ก ์ค๋ฆ์ฐจ์, ๋ค์์ ์์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์์ด์ ํฌ๊ธฐ๋ฅผ ์ ์ฅํด ๊ฐ๋ค.
- ์ ํ์์ max(ํ์ฌ ์ธ๋ฑ์ค ๊ฐ, ์ง๋์จ ์ธ๋ฑ์ค๋ค์ ์ต๋๊ฐ +1) ์ด๋ค.
- ์ฌ๊ธฐ์ ์ง๋์จ ์ธ๋ฑ์ค์ A๋ฐฐ์ด ๊ฐ์ด ํ์ฌ ์ธ๋ฑ์ค์ A๋ฐฐ์ด ๊ฐ๋ณด๋ค ์์์ผ ํ๋ค.
- ์ด๋ ๊ฒ ๊ตฌํด์ง up, down intํ ๋ฐฐ์ด๋ค์ ๊ฐ์ ์ธ๋ฑ์ค๋ผ๋ฆฌ ๋ํด์ ์ต๋๊ฐ+1์ ์ถ๋ ฅํ๋ค.
- +1์ ํ๋ ์ด์ ๋ ํ์ฌ ์ธ๋ฑ์ค์ ์์๊ฐ ํฌํจ๋์ง ์์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๐ธ end ๐ธ
- ์ฒ์์ N์ด 1000์ผ๋ก ์์ ๊ฒ ๊ฐ์์ ๋ธ๋ฃจํธ ํฌ์ค๋ก ํ๋ ค๊ณ ํ์ง๋ง, ๋ถ๋ถ ์์ด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ DFS๋ก ๊ณ์ฐํ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
- ๊ฐ์ฅ ๊ธด ์ค๋ฆ์ฐจ์ ๋ถ๋ถ ์์ด๊ณผ ๊ฐ์ฅ ๊ธด ๋ด๋ฆผ์ฐจ์ ๋ถ๋ถ ์์ด์ ํฉ์ด๋ผ๋ ํํธ๋ฅผ ๋ณด๊ณ ํ์ด๋ผ ์ ์์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2166 : ๋ค๊ฐํ์ ๋ฉด์ (0) | 2024.03.11 |
---|---|
BOJ_13172 : ฮฃ (0) | 2024.03.10 |
BOJ_11779 : ์ต์๋น์ฉ ๊ตฌํ๊ธฐ 2 (0) | 2024.03.02 |
BOJ_9935 : ๋ฌธ์์ด ํญ๋ฐ (0) | 2024.03.01 |
BOJ_1033 : ์นตํ ์ผ (0) | 2024.02.29 |