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

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

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

1-A

1-A 일곱난쟁이문제입니다

작성

·

338

0

안녕하세요 강사님!

일곱난쟁이 문제에 대해 질문 드립니다!

http://boj.kr/90d2372449b74e20b4ad80e1e110ba89

제가 구현한 코드입니다.

강사님의 코드는 sum선언을 int sum = 0;으로 do while구문 안에 초기화를 하셨는데 저처럼 3행에 sum을 전역변수로 하여서 선언하면 안되는 것인가요? 그리고, sum을 전역변수로 선언이 가능하다면 int sum;이 아닌 int sum = 0;으로 초기화까지 해야하나요?

답변 1

1

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

안녕하세요 ㅎㅎ

do{

for(int i = 0; i < 7; i++){

sum += a[i];

if(sum == 100) break;

}

자 이부분을 보면

permutation 으로 만든 경우의 수를 기반으로 a라는 배열의 요소를 더하고 있죠?

이 때는 sum을 항상 초기화 해주어야 합니다.

다음코드 처럼요.

do{

sum = 0;

for(int i = 0; i < 7; i++){

sum += a[i];

if(sum == 100) break;

}

 

그리고, sum을 전역변수로 선언이 가능하다면 int sum;이 아닌 int sum = 0;으로 초기화까지 해야하나요?

>> 전역변수라면 int sum; 만으로도 0으로 자동 초기화 됩니다.

 

감사합니다.

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

질문하기