작성
·
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만이라고 생각하고 일단은 제출하고 생각하는 것을 추천드립니다.
감사합니다.