인프런 커뮤니티 질문&답변

밥먹는아이님의 프로필 이미지
밥먹는아이

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-B

2-B DFS 함수콜 질문

작성

·

240

·

수정됨

0

문제는 BFS로 해서 잘풀었습니다

그런데 DFS로 해결하신거 듣고 궁금증이 들어 질문드립니다.

DFS로 풀게되면 K가 최대인 2500일 경우 함수 깊이가 2500이 되지 않는건지 궁굼합니다.

분명 저는 스택에 제한이 있을거라고 생각하고 있는데

코딩테스트에서 DFS로 풀수 있는 함수콜 횟수 maximum 값을 얼마로 고려해야 하나요?

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

재귀함수가 2500번 호출되면 안되지 않을까? 생각하시는 거죠?

해당 부분은 코테 환경, 컴파일러 환경 등에 따라 너무나 다르기 때문에 해당부분은 고려하지 말고

일단은 제출하시고 판단하는게 좋습니다.

다만, 10만 정도까지는 된다고 생각하시면 되고 100만 부터는 좀 안되지 않을까? 생각하시는게 좋습니다.

예시를 들자면요.

#include <bits/stdc++.h>
using namespace std;  
int cnt = 100000;
void go(int idx){
	if(idx == cnt) return;
	go(idx + 1);
}
int main () {  
	go(0); 
    return 0;
}

10만까지는 잘 돌아가는데 100만부터는 segment가 발생하는 간단한 재귀함수 코드입니다.

 

다만, 이 코드 만으로 10만까지는 잘 되겠지? 라고 하는 것은 너무 많은 변수들이 있기 때문에.. 어림잡아 10만이라고 생각하고 일단은 제출하고 생각하는 것을 추천드립니다.

감사합니다.

 

밥먹는아이님의 프로필 이미지
밥먹는아이

작성한 질문수

질문하기