inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

6. 바둑이 승차(이진트리 DFS)

조건문

262

성창수

작성한 질문수 14

0

      function solution(c, arr) {
        let answer = 0;
        let n = arr.length;
        function DFS(L, sum) {
          //if (sum > c) return;
          if (L === n) {
            console.log(sum);
            if (sum <= c) {
              answer = Math.max(answer, sum);
            }
          } else {
            DFS(L + 1, sum + arr[L]);
            DFS(L + 1, sum);
          }
        }
        DFS(0, 0);
        return answer;
      }

      let arr = [81, 58, 42, 33, 61];
      console.log(solution(259, arr));

강사님, 저는 동영상 보지 않고 혼자 풀었을 때, if(sum > c) return 대신에,
if(L === n) 만에 if(sum <= c) 조건을 넣어서 풀었는데, 그래도 답은 나오더라구요. 이렇게 하면 sum이 c보다 큰 수의 경우도 포함되어서 확인하기는 하는데, 이렇게 풀어도 크게 차이는 없나요??

javascript 코딩-테스트

답변 1

0

김태원

안녕하세요^^

영상처럼 if(sum > c) return;를 if(L === n) 위에 해주어야 L 이 레벨 n까지 가기 전에 sum > c이면 그 이전 레벨에서 가지치기를 해서 시간복잡도가 훨씬 좋습니다. 데이터가 큰 케이스가 들어가면 시간 차이가 많이 납니다.

continue를 사용하는 이유

0

82

2

정렬 가능 여부 판단하기

0

66

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

69

1

저는 이런식으로 구현 해보았습니다 !!

0

65

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

101

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

75

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

136

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

126

2

강의에 대해 질문있습니다.

0

136

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

113

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1