인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김재훈님의 프로필 이미지

작성한 질문수

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

2309 난쟁이 문제

해결된 질문

작성

·

272

0

http://boj.kr/38b4e63c5ae843bea191263fef5b34ba
저는 이렇게 문제를 풀어보았는데요

제 vscode에서는 출력값이 잘 나오는데 어떤 부분이 틀린건지 모르겠어서 질문 남깁니다 ㅠㅠ

답변 1

1

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

 

안녕하세요. 재훈님 ㅎㅎ

예를 들어서 여러가지 경우의 수가 있다면 어떻게 될까요? 여기서 sum이 100일 때 print를 하고 return하는 것은 알겠는데 저건 combi라는 함수가 종료되는 것 뿐이에요. 예를 들어 경우의 수가 2가지가 있다면 2번 프린트 되는 현상이 발생이 될 수도 있는것이죠. 저 return을 exit(0)으로 바꿔주시고 조금 수정을 가하시면 됩니다.

    if (b.size() == 7) {
        int sum = accumulate(b.begin(), b.end(), 0);
        if (sum == 100) printV(b);
        return;
    }

제가 재훈님 코드를 기반으로 수정을 좀 해봤는데요. 참고부탁드립니다.

http://boj.kr/222004a54074431bbad01f3f6f60d800

또 질문 있으시면 언제든지 질문 부탁드립니다.

감사합니다.

강사 큰돌 올림.