작성
·
339
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으로 자동 초기화 됩니다.
감사합니다.