안녕하세요 길벗수험서 운영팀입니다.
해당 코드의 경우 단순히 반복문을 역순으로 돌려가며 자신보다 뒤에 배치되어 있는 배열 요소들의 합을 저장하는 형태의 알고리즘이기 때문에 특별히 해설할만한 부분이 존재하지 않습니다.
디버깅표를 그리듯이 값의 변화를 따라가면 되기 때문이죠.
즉,
numAry[4] 그 뒤의 배열이 존재하지 않으니 패스
numAry[3]일 때는 numAry[4]를 더해 저장
numAry[2]일 때는 numAry[4]~numAry[3]를 더해 저장
numAry[1]일 때는 numAry[4]~numAry[2]를 더해 저장
numAry[0]일 때는 numAry[4]~numAry[1]를 더해 저장
하는 식입니다.
numAry[j=2]이고 numAry[i=3]일 때 두 배열의 값이 모두 3인 이유는 그 전 과정에서
numAry[2]가 numAry[4] (=3)의 값을 저장했기 때문입니다.
(numAry[2]가 numAry[4](3)를 저장하여 3이 되고, 다음 numAry[3](3)을 또 저장해서 6이 되게 되는 것이죠.
그보다 더 전에는 numAry[3]은 numAry[4]의 값을 저장하여 3을 갖고 있습니다.)
행복한 하루되세요 :)
-
관리자2019-06-03 10:12:06
안녕하세요 길벗수험서 운영팀입니다.
해당 코드의 경우 단순히 반복문을 역순으로 돌려가며 자신보다 뒤에 배치되어 있는 배열 요소들의 합을 저장하는 형태의 알고리즘이기 때문에 특별히 해설할만한 부분이 존재하지 않습니다.
디버깅표를 그리듯이 값의 변화를 따라가면 되기 때문이죠.
즉,
numAry[4] 그 뒤의 배열이 존재하지 않으니 패스
numAry[3]일 때는 numAry[4]를 더해 저장
numAry[2]일 때는 numAry[4]~numAry[3]를 더해 저장
numAry[1]일 때는 numAry[4]~numAry[2]를 더해 저장
numAry[0]일 때는 numAry[4]~numAry[1]를 더해 저장
하는 식입니다.
numAry[j=2]이고 numAry[i=3]일 때 두 배열의 값이 모두 3인 이유는 그 전 과정에서
numAry[2]가 numAry[4] (=3)의 값을 저장했기 때문입니다.
(numAry[2]가 numAry[4](3)를 저장하여 3이 되고, 다음 numAry[3](3)을 또 저장해서 6이 되게 되는 것이죠.
그보다 더 전에는 numAry[3]은 numAry[4]의 값을 저장하여 3을 갖고 있습니다.)
행복한 하루되세요 :)