예를 들어 n개에서 k개를 고르는 모든 조합 만들 때
포함 시킨다, 포함 안한다 식으로 2^k 승 하는 방법이 있고... (k개 이하로 뽑는 경우는 버림)
아니면 각 상태 공간마다 for문으로...
예를 들면
func f(depth, index) {
if (depth == 3 ) { dosomething }
for (int i = index; i < n; i++) {
dosomething...
f(depth + 1, i + 1);
dosomething...
}
}
이런 것도 있고...
문제에 따라 되게 헷갈림.
이번 카카오 블라인드 코테 4번 문제 풀어본 사람 있으면 알겠지만
전자로 접근하는 게 맞는데 본인 처음에 후자로 접근했다가 개털렸었음.
전자로 다시 접근해서 풀긴했다만...
재귀에 대한 이해 부족
글게 ㅠㅠ
머리로 이해가 안되면 그냥 무지성으로 관련 문제 존나 풀다보면 이해됨
이해는 가긴 하는데(이래놓고 이해 못한걸수도) 전자로 풀어도 되고 후자로 풀어도 되는 경우가 꽤 있어. 풀리긴 다 풀려
맞어 ㅅㅂ - dc App
야너두?
첫번째 방식으로 푸는 문제 백준에 뭐 있어??
왜 2^k죠?
2^n이 나오거나 가지치기 해서 nCk가 나와야 할 것 같은데 아닌가요?