๋ฌธ์
ํ์ด
์ฒ์์ผ๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ index๋ฅผ ํตํด ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ํํ๋ ค๊ณ ํ๋ค. ํ์ง๋ง ๊ฐ์ ์๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ๊ฐฑ์ ํ๋ ๊ณผ์ ์์ ์ผ๊ด๋ ๊ท์น์ ์ฐพ์ ์ ์์๊ณ ์ด๋ฅผ ์ปค๋ฒํ๊ธฐ ์ํด index๊ฐ ์๋ ์ค์ ๊ฐ์ ํตํด ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ํํ๋ค.
์์์๋ถํฐ ์์๋๋ก ํด๋น ๊ฐ A๋ฅผ ์ฐพ๊ณ 1 ~ A-1๊น์ง์ ์ต๋ ๊ธธ์ด + 1๋ก ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ์ต๋ ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ค.
import java.util.Scanner;
public class Solution11053 {
static Scanner sc = new Scanner(System.in);
static int[] cache = new int[1001];
public static void main(String[] args) {
int N = sc.nextInt();
int[] input = new int[N];
for (int i = 0; i < input.length; i++) {
input[i] = sc.nextInt();
}
for (int i = 0; i < input.length; i++) {
int current = input[i];
int maxCnt = 0;
for (int j = current - 1; j > 0; j--) {
if (cache[j] == 0)
continue;
maxCnt = (maxCnt < cache[j]) ? cache[j] : maxCnt;
}
cache[current] = maxCnt + 1;
}
int maxCnt = 0;
for (int i = 1; i < 1001; i++) {
if (maxCnt < cache[i]) {
maxCnt = cache[i];
}
}
System.out.println(maxCnt);
}
}
'๐ Algorithm > ๐ป ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 15686. ์นํจ ๋ฐฐ๋ฌ (0) | 2021.02.19 |
---|---|
[๋ฐฑ์ค] 9251. LCS (0) | 2021.02.10 |
[๋ฐฑ์ค] 9663. N-Queens (0) | 2021.02.05 |
[๋ฐฑ์ค] 2493. ํ (0) | 2021.02.04 |
[๋ฐฑ์ค] 1436. ์ํ๊ฐ๋ ์ (0) | 2021.02.03 |
๋๊ธ