galaxy   7년 전

안녕하세요. 문제를 풀기는 했는데, 처음 생각한 방법으로는 풀리지 않아 질문하게 되었습니다. ㅠ


제가 구현한 방법에 대해 설명 드리자면

1. checkList에 '+', '-', '0'과 같은 부호를 저장합니다. {{0,0,0,0,0},{0,'+','+','+','+'},{0, 0, '+','+','+'},{0,0,0,'-','-'},{0,0,0,0,'-'}} 형태입니다.

2. 1번째 숫자를 만들기 시작합니다.

3. index번째 숫자를 checkList[index][index]의 값에 따라 0, 1~10 또는 -1~-10까지 입력을 합니다.

3-1) list[index]에 가정 한 숫자 i를 입력하고, sum[index]에 index-1 번째의 합에, i를 더하여 1~index까지의 합을 sum에 저장합니다.

3-2) validate(index)를 통하여 데이터의 유효성을 체크하여 index번째 까지의 숫자까지 데이터가 유효하면(0 또는 부등호가 맞다면) 계속 진행합니다.

4. index가 N보다 크면, 즉 1~N까지의 숫자가 완성되었으면 출력 후 종료합니다.(문제에서 N이 코드상에서는 listSize입니다.)


이렇게 풀어보려고 하였을 때는 문제를 풀지 못했고, sum 배열을 사용하지 않고, list 데이터 입력 후, 1~index까지 

int validateSum(int i, int j)
{
int sum;
for (sum = 0; i <= j; i++)
sum += list[i];
return sum;
}

함수를 이용해 합계를 직접 구했을 때는 성공한것을 보면, 분명 아래의 소스에서 validate에서 문제가 있을것으로 생각되는데, 문제점을 찾지 못하고있어 질문드립니다...ㅠ

제가 어떤 부분을 놓히고 있는지 가르침 부탁드립니다...


dotorya   7년 전

Line 38에서 sum[index]를 계산하지 않는 것이 문제인 것 같습니다.

그걸 고치니 잘 동작하네요!

galaxy   7년 전

헐........이럴수가요.....왜 몇 시간동안 저걸 못봐서 같은 소스만 계속 보고있었네요....ㅠㅠ 감사합니다 !

댓글을 작성하려면 로그인해야 합니다.