정보처리기사 실기 84페이지 문제 3번을 몇번을 읽어 봐도 이해가 안되어서 그러는데요?
for문은 반복이라
J=0부터 5보다 작은수 로 1씩 증가하고
I는 0부터 J까지 1씩증가하고
numAry[j] += numAry[i] 는 unmAry[j]=unmAry[j]+unmAry[i] 라는 말이 되는데요.
J가 1이면 i는 0~1까지 이지만 J값보다 작아야 하므로 unmAry[j]=unmAry[1]+unmAry[0]만 계산하고
J가 2이면 i는 0~1까지만 unmAry[j]=unmAry[2]+unmAry[0],
unmAry[j]=unmAry[2]+unmAry[1] 이렇게 계산해서 하고
마직막 for문은 따로 하는거 아닌가요? 디버깅을 읽어봐도 이해가 되지 않아 이렇게 글을 올립니다.
안녕하세요.
2장 기출따라잡기와 예상문제은행은 풀이 과정을 토막강의로 제공하고 있습니다.
아래의 해설로도 잘 이해가 안되신다면 토막강의를 참조하세요.
토막강의 시청 방법은 왼쪽의 프리미엄존 - 토막강의 코너 상단에 등록된 공지사항을 참고하세요.
numAry에는 1, 0, 0, 0, 0 이 저장되어 있습니다.
즉
numAry[0]에는 1이
numAry[1]에는 0이
numAry[2]에는 0이
numAry[3]에는 0이
numAry[4]에는 0이 저장되어 있는 것이죠.
바깥쪽 for문
j는 초기값 0을 가지고 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다.
안쪽 for문
i는 초기값 0을 가지고 종료값 i 다시 바깥쪽 for문 j는 증가값 ++j로 인해 1 증가되어 1이된 상태에서 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다. 안쪽 for문 i는 초기값 0을 가지고 종료값 i numAry[J] += numAry[i];를 수행하여 numAry[1]에 numAry[0]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다. numAry[0]에는 1 numAry[1]에는 1 numAry[2]에는 0 numAry[3]에는 0 numAry[4]에는 0이 저장되어 있습니다. 안쪽 for문 i는 증가값 ++i로 인해 1 증가되어 1이된 상태에서 종료값 i 다시 바깥쪽 for문 j는 증가값 ++j로 인해 1 증가되어 2가된 상태에서 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다. 안쪽 for문 i는 초기값 0을 가지고 종료값 i numAry[J] += numAry[i];를 수행하여 numAry[2]에 numAry[0]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다. numAry[0]에는 1 numAry[1]에는 1 numAry[2]에는 1 numAry[3]에는 0 numAry[4]에는 0이 저장되어 있습니다. 안쪽 for문 i는 증가값 ++i로 인해 1 증가되어 1이된 상태에서 종료값 i numAry[J] += numAry[i];를 수행하여 numAry[2]에 numAry[1]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다. numAry[0]에는 1 numAry[1]에는 1 numAry[2]에는 2 numAry[3]에는 0 numAry[4]에는 0이 저장되어 있습니다. 안쪽 for문 i는 증가값 ++i로 인해 1 증가되어 2가된 상태에서 종료값 i 위와 같은 과정으로 이후 과정을 계속해서 수행합니다. numAry[3]은 처음에 0이 었지만 i가 0일 때 numAry[0]의 값이 1이 누적되어 numAry[3]은 1이 됩니다. 이어서 i가 증가하여 1일 때 numAry[1]의 값이 1이 누적되어 numAry[3]은 2가 됩니다. 이어서 i가 증가하여 2일 때 numAry[2]의 값이 2가 누적되어 numAry[3]은 4가 됩니다. 이어서 i가 증가하여 3일 때 i 같은 원리로 j가 4일 때는 numAry[4]에 numAry[0]~numAry[3]까지의 값이 누적되어 i가 0일 때 numAry[4]는 1 i가 1일 때 numAry[4]는 2 i가 2일 때 numAry[4]는 4 i가 3일 때 numAry[4]는 8 이 됩니다. 그래서 결국 최종적으로 nuymAry 배열의 값은 1 1 2 4 8이 되므로 화면에는 한 줄씩 출력되어 1 1 2 4 8 이 된 것입니다 수행 과정을 469쪽 디비겅 표와 함께 이해하시면 쉽게 이해하실 수 있습니다. 오늘도 즐거운 하루 되세요.
즉 j가 3일 때
-
*2017-06-07 09:42:43
안녕하세요.
2장 기출따라잡기와 예상문제은행은 풀이 과정을 토막강의로 제공하고 있습니다.
아래의 해설로도 잘 이해가 안되신다면 토막강의를 참조하세요.
토막강의 시청 방법은 왼쪽의 프리미엄존 - 토막강의 코너 상단에 등록된 공지사항을 참고하세요.
numAry에는 1, 0, 0, 0, 0 이 저장되어 있습니다.
즉
numAry[0]에는 1이
numAry[1]에는 0이
numAry[2]에는 0이
numAry[3]에는 0이
numAry[4]에는 0이 저장되어 있는 것이죠.
바깥쪽 for문
j는 초기값 0을 가지고 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다.
안쪽 for문
i는 초기값 0을 가지고 종료값 i
다시
바깥쪽 for문
j는 증가값 ++j로 인해 1 증가되어 1이된 상태에서 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다.
안쪽 for문
i는 초기값 0을 가지고 종료값 i
numAry[J] += numAry[i];를 수행하여
numAry[1]에 numAry[0]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.
numAry[0]에는 1
numAry[1]에는 1
numAry[2]에는 0
numAry[3]에는 0
numAry[4]에는 0이 저장되어 있습니다.
안쪽 for문
i는 증가값 ++i로 인해 1 증가되어 1이된 상태에서 종료값 i
다시
바깥쪽 for문
j는 증가값 ++j로 인해 1 증가되어 2가된 상태에서 종료값 j<5 조건에 만족하므로 안쪽 for문을 수행합니다.
안쪽 for문
i는 초기값 0을 가지고 종료값 i
numAry[J] += numAry[i];를 수행하여
numAry[2]에 numAry[0]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.
numAry[0]에는 1
numAry[1]에는 1
numAry[2]에는 1
numAry[3]에는 0
numAry[4]에는 0이 저장되어 있습니다.
안쪽 for문
i는 증가값 ++i로 인해 1 증가되어 1이된 상태에서 종료값 i
numAry[J] += numAry[i];를 수행하여
numAry[2]에 numAry[1]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.
numAry[0]에는 1
numAry[1]에는 1
numAry[2]에는 2
numAry[3]에는 0
numAry[4]에는 0이 저장되어 있습니다.
안쪽 for문
i는 증가값 ++i로 인해 1 증가되어 2가된 상태에서 종료값 i
위와 같은 과정으로 이후 과정을 계속해서 수행합니다.
즉 j가 3일 때numAry[3]은 처음에 0이 었지만
i가 0일 때
numAry[0]의 값이 1이 누적되어 numAry[3]은 1이 됩니다.
이어서 i가 증가하여 1일 때
numAry[1]의 값이 1이 누적되어 numAry[3]은 2가 됩니다.
이어서 i가 증가하여 2일 때
numAry[2]의 값이 2가 누적되어 numAry[3]은 4가 됩니다.
이어서 i가 증가하여 3일 때 i
같은 원리로 j가 4일 때는
numAry[4]에 numAry[0]~numAry[3]까지의 값이 누적되어
i가 0일 때 numAry[4]는 1
i가 1일 때 numAry[4]는 2
i가 2일 때 numAry[4]는 4
i가 3일 때 numAry[4]는 8
이 됩니다.
그래서 결국 최종적으로 nuymAry 배열의 값은
1 1 2 4 8이 되므로 화면에는 한 줄씩 출력되어
1
1
2
4
8
이 된 것입니다
수행 과정을 469쪽 디비겅 표와 함께 이해하시면 쉽게 이해하실 수 있습니다.
오늘도 즐거운 하루 되세요.