๐Algorithm/๐ฅBaekjoon
[Baekjoon] 14231_๋ฐ์ค ํฌ์ฅ
๋ฟ์ผ._.
2026. 1. 22. 11:29
๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/14231)
< ๋ฐ์ค ํฌ์ฅ >
๋ฌธ์ ํ์ด
์์ ๋ฐ์ค๋ฅผ ์ดํด๋ณด๋ฉฐ ํ์ฌ ๋ฐ์ค๋ณด๋ค ์์์ง ํ์ธํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _14231_ { // ๋ฐ์ค ํฌ์ฅ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
int arr[] = new int[n];
int dp[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
dp[i] = 1;
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (arr[j] < arr[i]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
}
int result = 0;
for (int i = 0; i < n; i++) {
result = Math.max(result, dp[i]);
}
System.out.println(result);
}
}
๋ณ์)
n : ๋ฐ์ค์ ๊ฐ์
arr : ๋ฐ์ค ํฌ๊ธฐ
dp : ๊ณผ๋ ํฌ์ฅํ ๋ฐ์ค๋ค
result : ๊ณผ๋ ํฌ์ฅํ ๋ฐ์ค ๊ฐ์
๋ฐ์ค์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ฐ์ค์ ๊ฐ์๋งํผ ๋ฐ์ค ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๊ณ , dp๋ฅผ 1๋ก ์ด๊ธฐํํ๋ค. ๋ฐฐ์ด์ ํ์ํ๋ฉฐ ํ์ฌ ๋ฐ์ค ํฌ๊ธฐ๋ณด๋ค ์์ ๋ฐ์ค๋ค์ด ์์์ง ํ์ธํ ํ, ์๋ค๋ฉด dp๊ฐ์ ์ ๋ฐ์ดํธํ๋ค. ์ต์ข dp๋ฅผ ์ดํด๋ณด๋ฉฐ ์ต๋๊ฐ์ ๊ตฌํด ์ถ๋ ฅํ๋ค.
