강의

멘토링

커뮤니티

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

bunny님의 프로필 이미지
bunny

작성한 질문수

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

기초 개념 조합 강의에서

작성

·

197

0

안녕하세요

기초 개념 조합 강의 보다가 질문이 생겨 글 남깁니다.

5개 중 3개를 뽑는 조합에서

014가 담긴 후에

pop_back()이 어떻게 2번 일어나서 원복이 되는지 잘 모르겠습니다.

 

답변 1

0

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

음 pop_back()이 연속으로 일어나지는 않습니다. 제가 주석처리를 좀 했는데요. ㅎㅎ

이 부분을 통해 디버깅을 해보시겠어요? 배열 5개에서 3개가 좀 힘들면 3개중에 2개로 바꿔서 디버깅(cout 을 통해 벡터 전부를 출력하게) 해보시면 이해가 가실 거에요.

void combi(int start, vector<int> b){ 
    if(b.size() == k){
        print(b);
        return;
    }
    for(int i = start + 1; i < n; i++){
//이라인
        b.push_back(i);
//이라인
        combi(i, b);
//이라인
        b.pop_back();
//이라인
    }
    return;
}  
bunny님의 프로필 이미지
bunny
질문자

해결하였습니다.

감사합니다!

bunny님의 프로필 이미지
bunny

작성한 질문수

질문하기