CodingTest/Java
BOJ_11054 : ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด
Soom_1n
2024. 3. 10. 20:01
11054๋ฒ: ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด
์ฒซ์งธ ์ค์ ์์ด A์ ํฌ๊ธฐ N์ด ์ฃผ์ด์ง๊ณ , ๋์งธ ์ค์๋ ์์ด A๋ฅผ ์ด๋ฃจ๊ณ ์๋ Ai๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000)
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ค๊ฐ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ํ ๋ด๋ฆผ์ฐจ์์ด ์ด์ด์ง๋ ์์ด์ ๋ฐ์ดํ ๋ ์์ด์ด๋ผ๊ณ ํ๋ค.
- ์ฃผ์ด์ง๋ ์์ด์ ๋ถ๋ถ ์์ด ์ค ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ์์ด์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ๊ฐ ์ธ๋ฑ์ค ๋ณ๋ก ๊ฐ์ฅ ๊ธด ์ค๋ฆ์ฐจ์ ์์ด๊ณผ ๊ฐ์ฅ ๊ธด ๋ด๋ฆผ์ฐจ์ ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐ๋ก ๊ตฌํด ์ ์ฅํ๋ค.
- ๊ฐ์ ์ธ๋ฑ์ค์ ๋ ๊ฐ์ ํฉ ์ค ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
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