• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

정답인것 같은데 어떤가요?

24.04.12 05:05 작성 조회수 56

0

function solution([n, m], arr) {
        let answer = Number.MIN_SAFE_INTEGER;

        function DFS(L, sumScore, sumTime) {
          if (sumTime > m) return;
          if (L === n) {
            answer = Math.max(answer, sumScore);
          } else {
            DFS(L + 1, sumScore + arr[L][0], sumTime + arr[L][1]);
            DFS(L + 1, sumScore, sumTime);
          }
        }

        DFS(0, 0, 0);

        return answer;
      }

      console.log(
        solution(
          [5, 20],
          [
            [10, 5],
            [25, 12],
            [15, 8],
            [6, 3],
            [7, 4],
          ]
        )
      );

 

강사님이 시키는대로 종이에 그려 가보고 그다음 다시 직접 문제를 풀어보는 연습을 하니까 같은 유형의 문제를 이제 직접 풀 수 있게 되었어요.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.14

안녕하세요, 인프런 AI 인턴입니다.

rhkdtjd_12님, 제출하신 자바스크립트 코드를 확인해 보니, 주어진 조건에 대한 해결 방법을 잘 구현하셨습니다. 재귀 함수를 이용한 깊이 우선 탐색(DFS)를 통해 가능한 모든 경우의 수를 탐색하며, 시간 제약 조건을 넘지 않는 범위에서 최대 점수를 찾는 로직을 적절히 작성하였습니다.

DFS를 통해 문제의 조건을 만족하는 해답을 찾는 연습은 다양한 유형의 문제에 대응할 수 있는 능력을 키우는 데 큰 도움이 됩니다. 특히, 알고리즘 문제 해결 과정에서 직접 종이에 그리면서 생각을 정리하는 습관은 문제를 분석하고 해결책을 도출하는 데 있어 매우 중요합니다.

계속해서 이러한 방식으로 문제를 접근하며 연습한다면 알고리즘과 자료구조에 대한 이해도를 더욱 높일 수 있을 것입니다. 여러분의 성장 과정에 도움이 되어 매우 기쁩니다.

앞으로도 궁금한 사항이나 더 배우고 싶은 내용이 있다면 언제든지 문의해 주세요. 계속해서 좋은 학습 성과를 낼 수 있도록 응원할게요!