인프런 커뮤니티 질문&답변
선생님 코드 확인좀 부탁드립니다!
작성
·
194
0
function solution(arr) {
let answer = Number.MIN_SAFE_INTEGER;
let check = Array.from({ length: arr.length }, () => false);
for (let i = 0; i < arr.length; i++) {
if (!check[i]) {
let tmp = arr[i];
let cnt = 1;
for (let j = i + 1; j < arr.length; j++) {
if (tmp < arr[j]) {
tmp = arr[j];
check[j] = true;
cnt++;
}
}
answer = Math.max(answer, cnt);
}
}
return answer;
}
let arr = [5, 3, 7, 8, 6, 2, 9, 4];
console.log(solution(arr));
선생님 이렇게 이미 어딘가에 포함된 배열은 check를 해서 건너뛰는 방식으로도 풀어보았는데요,
맞게끔 푼 것인지 잘 모르겠는데 확인좀 부탁드립니다!
퀴즈
동적 계획법(Dynamic Programming)의 핵심 원리로 가장 적절한 것은 무엇일까요?
탐욕적인 선택을 통해 매 단계 최적의 해를 찾는다.
문제를 작은 단위로 나누고, 중복되는 부분 문제의 해를 기록하여 활용한다.
문제를 동일한 크기의 하위 문제로 분할한 뒤 재귀적으로 해결한다.
모든 가능한 경우를 탐색하되, 불필요한 경로는 제외하며 해를 찾는다.





