View
[SWEA_3307] ์ต์ฅ ์ฆ๊ฐ ์์ด(LIS, Longest Increasing Subsequence)
์ฑ ์ฝ๋ ๊ฐ์ 2022. 10. 6. 16:26[๋ฌธ์ ]
์ฃผ์ด์ง ๋ ์์ด์ ์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ ์์ด(Longest Increasing Subsequence)์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์์ด { A1, A2, ... , AN }์ ์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ ์์ด B๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.
{ B1, B2, ... , BK }์์ 0≤K≤N, B1 ≤ B2 ≤ ... ≤ BK์ด๊ณ ,
AB1 ≤ AB2 ≤ ... ≤ ABK์ธ ์ต๋ K๋ก ๊ตฌ์ฑ๋ ์์ด์ด๋ค.
์๋ฅผ ๋ค์ด, ์์ด์ด { 1, 3, 2, 5, 4, 7 } ์ด๋ผ๋ฉด, ์ต์ฅ ๋ถ๋ถ ์ฆ๊ฐ ์์ด์ ๊ธธ์ด๋ 4๊ฐ ๋๋ค.
[์
๋ ฅ]
์ฒซ ๋ฒ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ์ T๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์์ด์ ๊ธธ์ด N(1≤N≤1,000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค์๋ ์์ด์ ์์ N๊ฐ๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค.
๊ฐ ์์ด์ ์์๋ 1 ์ด์ 231-1 ์ดํ์ ์์ฐ์์ด๋ค.
[์ถ๋ ฅ]
๊ฐ ํ
์คํธ ์ผ์ด์ค๋ง๋ค ‘#T’(T๋ ํ
์คํธ์ผ์ด์ค ๋ฒํธ๋ฅผ ์๋ฏธํ๋ฉฐ 1๋ถํฐ ์์ํ๋ค)๋ฅผ ์ถ๋ ฅํ๊ณ , ์ต๋ ์ฆ๊ฐ ๋ถ๋ถ ์์ด์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
[์ ๋ ฅ]
1 3 2 5 4
6
4 2 3 1 5 6
#2 4
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Solution_3370 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int t = 1; t <= T; t++) { // ํ
์คํธ ์ผ์ด์ค
int N = Integer.parseInt(br.readLine());
int[] list = new int[N];
int[] dp = new int[N];
int max = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
list[i] = Integer.parseInt(st.nextToken());
}
dp[0] = 1;
for (int i = 1; i < N; i++) {
dp[i] = 1; // ๋ชจ๋ ํ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์ (์๊ธฐ์์ )
// System.out.println(Arrays.toString(list));
// System.out.println(Arrays.toString(dp));
for (int pre = 0; pre < i; pre++) { // 4 2 3
if (list[i] > list[pre] && dp[pre] + 1 > dp[i])
dp[i] = dp[pre] + 1;
}
max = Math.max(max, dp[i]); // ์ง๊ธ๊น์ง์ max๋ ํ์ฌ๊น์ง์ ๊ฐ๊ณผ ๋น๊ต
}
System.out.println("#" + t + " " + max);
}
}
}
'์๊ณ ๋ฆฌ์ฆ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 14502: ์ฐ๊ตฌ์ (Java) (0) | 2022.10.09 |
---|---|
[๋ฐฑ์ค] 2023: ์ ๊ธฐํ ์์ (Java) (0) | 2022.10.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ณดํธ์์์ ์ค์ฑํํ ๋๋ฌผ (0) | 2022.10.06 |
[๋ฐฑ์ค] 2630: ์์ข ์ด ๋ง๋ค๊ธฐ(๋ถํ ์ ๋ณต) (0) | 2022.10.03 |
[๋ฐฑ์ค] 10814: ๋์ด์ ์ ๋ ฌ(Java) (0) | 2022.10.03 |