강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dohyun0505
dohyun0505

câu hỏi đã được viết

Giới thiệu về giải quyết vấn đề thuật toán JavaScript (chuẩn bị cho bài kiểm tra mã hóa)

14. Tìm sự kết hợp (quan trọng)

질문있습니다.

Viết

·

256

0

function DFS(L, s){
if (L === m{
     answer.push(tmp.slice());
   }
   else {
     for(let i=s; i <= n; i++{
       tmp[L= i; <== 이부분에서 질문.
       DFS(L+1, i+1);
      } 
    }
}
위 표시한 부분에서 tmp 에 1,2까지는 이해가 되는데 뒤에
다시 1,3 ... 1,4 으로 되는부분이 이해가 잘 가지않습니다.
1,3에서 i가 3이라는건 밑에 for문의 i랑 DFS(L+1, i+1)
i가 같은 i인가요?
tmp[1= 3; 이렇게 되는 이유가 이해가 잘 되지않습니다.
tmp[1= 4;
for문에서 i++증가는 DFS를 재귀로 실행된것이 다 끝나고
나면 if에서 걸려서 실행이 되고나서 다시 증가하는건가요?
javascript코테 준비 같이 해요!

Câu trả lời 3

1

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

1. for문의 i랑 DFS(L+1, i+1) i가 같은 i인가요?

네, 맞습니다. for문의 i랑 DFS(L+1, i+1)의 i는 같은 i입니다.

2. for문에서 i++증가는 DFS를 재귀로 실행된것이 다 끝나고 나면 if에서 걸려서 실행이 되고나서 다시 증가하는건가요?

네. 맞습니다. 호출된 재귀가 if문에 걸려 종료되고 스택에서 빠지면 그 전  함수로 되돌아가 for문이 돌면서 i가 증가하는 것입니다. 또 그 전 함수로 되돌아 갔을 때 L값도 그 전 함수때의 값으로 되돌가 가는는 것을 알아 차려야 합니다.

제 생각에는 "스타현이"님이 제대로 이해를 하고 있는 것 같습니다. 

제일 좋은 방법은 앞에 이전 영상들에서 가르쳐준것처럼 트리형태의 수형도와 스택그림을 그리면서 직접해보는 것이 제일 좋습니다. 잘 안되면 중복순열과 순열 문제를 다시 트리그림과 스택그림을 그려가면서 해본 후 다시 이 문제를 해보면 좋을 것 같습니다.

제가 오늘이나 내일 쯤 트리그림과 스택그림을 코드구현하는 도중에 코드옆에다 그려가면서 다시 영상을 찍어보도록 하겠습니다.

0

dohyun0505님의 프로필 이미지
dohyun0505
Người đặt câu hỏi

감사합니다. 이제 정확히 이해됬습니다!

0

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

조합구하기 영상 새로 찍어서 업로드 했습니다. 

Hình ảnh hồ sơ của dohyun0505
dohyun0505

câu hỏi đã được viết

Đặt câu hỏi