인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

dgkim3811님의 프로필 이미지
dgkim3811

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 최대부분증가수열(LIS)

이 방법은 잘못된 풀이 방법인가요?

작성

·

197

0

const main = (n) => {
  const memo = {};

  for (let i = 0; i < n.length; i++) {
    const biggerThanCur = Object.keys(memo).find((key) => n[i] > key);
    if (!biggerThanCur) memo[n[i]] = dfs(i, 0);
  }

  function dfs(index, count, recent = 0) {
    if (index === n.length) {
      return count;
    }

    if (n[index] > recent) {
      count++;
      recent = n[index];
    }

    return dfs(index + 1, count, recent);
  }

  let result = 0;
  for (const key in memo) {
    if (result < memo[key]) {
      result = memo[key];
    }
  }

  return result;
};

console.log(main([5, 3, 7, 8, 6, 2, 9, 4]));

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

재귀가 좋으시면 해도 괜찮습니다. 영상의 방법도 잘 익히시기 바랍니다.

dgkim3811님의 프로필 이미지
dgkim3811

작성한 질문수

질문하기