• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

22.09.05 20:52 작성 조회수 158

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

안녕하세요^^

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