강의

멘토링

커뮤니티

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

고리오영감님의 프로필 이미지
고리오영감

작성한 질문수

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

[필독] 질문하는 방법

1-A 2309 일곱난쟁이 문제 순열로 풀 때

작성

·

356

0

http://boj.kr/f6638250b2814e13a909273f55fdf916

순열로 푸는 경우에서 질문입니다.

강사님께서는 sum 변수를 do {} 블록에서 선언하셨는데요. 저는 그냥 전역변수로 선언하고 제출하니 틀리더라고요. 그리고, 디버깅을 해보니 무한루프에 빠집니다.

왜 이런건가요? 조합으로 풀때는 모든 변수를 전역으로 선언해도 맞는데, 순열로 할 때는 sum변수를 do {}블록에서 선언해야만 하는 이유가 궁금합니다.

답변 1

0

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

안녕하세요 go님 ㅎㅎ

순열의 경우 next_permutation을 사용해서 하는 것이고. 그 함수의 특성상 다음 순열의 경우의 수를 만들어내는 것이기 때문에 원본 배열에서의 경우의 수를 고려하기 위해 do를 씁니다.

go 님의 코드에서는 경우의 수마다 sum을 100으로 초기화하는 것이 빠져있습니다.

sum을 디버깅해보시겠어요?

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

감사합니다.

강사 큰돌 올림.

고리오영감님의 프로필 이미지
고리오영감

작성한 질문수

질문하기