728x90
문제
https://www.acmicpc.net/problem/11053
풀이
이 문제는 LIS 알고리즘과 DP 알고리즘을 이용한 문제이다.
DP 알고리즘을 이용해 지금까지 증가한 연속된 부분 수열의 개수를 저장해 사용한다.
코드
const input = require('fs')
.readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt')
.toString().trim().split('\n').map(e => e.split(' ').map(Number));
const [n] = input.shift();
const arr = input.shift();
const temp = Array.from({ length: n }, () => 1);
for (let i = 1; i < arr.length; i++){
for (let j = 0; j < i; j++){
if (arr[i] > arr[j] && temp[j] + 1 > temp[i]) {
temp[i] = temp[j] + 1;
}
}
}
console.log(Math.max(...temp));
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[Node.js] 20056_마법사 상어와 파이어볼 (0) | 2024.07.11 |
---|---|
[Node.js] 16918_봄버맨 (0) | 2024.07.09 |
[Node.js] 20055_컨베이어 벨트 위의 로봇 (0) | 2024.07.04 |
[Node.js] 16967_배열 복원하기 (0) | 2024.07.03 |
[Node.js] 19236_청소년 상어 (1) | 2024.07.01 |