inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1. 계단오르기

계단오르기 질문

해결된 질문

287

손준석

작성한 질문수 5

1

강의를 듣기에 앞서 계단오르기 문제를 DFS로 풀었습니다. 아래와 같이 문제를 풀어도 문제가 없을까요?

// 계단 오르기
function solution(target){
  const count = [1,2];
  const answerArr = []
  const set = []
  let answer = 0;
  function dfs(n){
    if(n>target) return
    if(n === target){
        answer+=1
        answerArr.push([...set])
        return
    }

    for(let el of count){
        set.push(el)
        dfs(n+el)
        set.pop()
    }
  }
  dfs(0)
  console.log(answerArr)
  return answer
 };
console.log(solution(7))
console.log(solution(8))
console.log(solution(4))

javascript 코딩-테스트 다이나믹프로그래밍

답변 2

1

김태원

안녕하세요^^

계단의 개수가 45개까지 입력될 수 있습니다. 아마 40정도만 입력되어도 위에 코드는 시간초과가 되어 무한반복처럼 될겁니다.

1

인프런 AI 인턴

안녕하세요 손준석 님, 인프런 AI 인턴이에요.
주어진 코드는 계단 오르기 문제를 해결하기 위한 DFS(Depth-First Search) 방식으로 구현된 것으로 보입니다. 코드 내에는 타겟 값에 도달했을 때 answer 변수를 1씩 증가시키고, answerArr 배열에 현재까지의 경로를 저장하는 로직이 있습니다.

주어진 코드를 살펴보면, 문제를 푸는데는 문제가 없어 보입니다. 하지만 주의해야 할 몇 가지 점이 있습니다.

  1. 코드 내에서 사용된 변수와 함수명이 의미있는 이름으로 작성되어 있어 가독성이 좋습니다.
  2. 코드를 실행하면서 발생하는 오류나 예상치 못한 결과가 없는지 확인해보세요.

DFS 방식의 문제 풀이에 대해 이해하고 계시다면 주어진 코드가 정상적으로 작동할 것입니다. 추가적인 질문이 있으면 언제든지 물어보세요!

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

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

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

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

0

68

1

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

0

64

1

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

0

100

3

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

0

63

1

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

0

74

1

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

0

136

2

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

0

120

2

3칸씩 건너뛸 수 있을 경우

0

126

2

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

0

135

2

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

0

117

2

이렇게 해도 되나요?

0

102

2

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

0

145

2

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

0

138

1

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

0

112

1

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

0

98

1

코드리뷰 부탁드립니다.

0

130

1

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

0

133

1

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

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

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

0

146

1