기본 알고리즘 -수열 113 부록 정답지에서 디버깅에 i<100 인데 왜 99에서 NO로 빠지는지 이해가 안됩니다.
100에서 NO로 빠져서 결과가 나오지 않는게 정상아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
일반적으로 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
해당 경우도 마찬가지 입니다.
i가 0, j가 0일 때 i<100 조건은 수행되지 않습니다.
i가 1, j가 1일 때 처음 i<100 조건문을 수행하여 결과가 나오는 형식이죠.
즉 i<100의 값들은 i나 j의 값보다 값의 변화가 하나 적어, 한줄 아래로 내려서 봐야 회전 수에 맞춰집니다.
행복한 하루되세요 :)
-
관리자2019-06-17 14:04:04
안녕하세요 길벗수험서 운영팀입니다.
일반적으로 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
해당 경우도 마찬가지 입니다.
i가 0, j가 0일 때 i<100 조건은 수행되지 않습니다.
i가 1, j가 1일 때 처음 i<100 조건문을 수행하여 결과가 나오는 형식이죠.
즉 i<100의 값들은 i나 j의 값보다 값의 변화가 하나 적어, 한줄 아래로 내려서 봐야 회전 수에 맞춰집니다.
행복한 하루되세요 :)
-
관리자2019-06-19 10:24:20
안녕하세요 길벗수험서 운영팀입니다.
음.. 과정 자체는 동일합니다.
다만 디버깅표를 작성하는 방식은 사람마다 다를 수 있습니다.
자신이 변수의 값 변화를 확실히 파악하기 위해 적는 것이 디버깅표 이니까요.
예를 들어 14페이지의 j=j+i 밑에 j=j-1이 하나 더 추가되었다고 생각해보죠.
그러면 j는 i가 한 번의 값변화를 겪을 때 두 번의 값변화를 겪으므로 디버깅표에서도 두 배정도 길어질 것입니다.
이때 J나 i<7의 결과(Yes or No)가 적히는 위치는 113페이지 처럼 그냥 위에서부터 다음처럼 나열할 수도 있겠고,
i
J
i<7
출력
0
1
2
3
4
5
6
7
0
1
0
2
1
4
3
7
6
11
10
16
15
22
21
Yes
Yes
Yes
Yes
Yes
Yes
No
7, 21
아니면 반복을 제어하는 변수 i의 값변화에 맞춰 아래와 같이 쓸수도 있을 것입니다.
i
J
i<7
출력
0
1
2
3
4
5
6
7
0
1
0
2
1
4
3
7
6
11
10
16
15
22
21
Yes
Yes
Yes
Yes
Yes
Yes
No
7, 21
결국 이렇게 저렇게 풀어도 동일한 결과를 나타내므로, 어떤 방식을 사용하셔도 무관합니다.
14페이지의 디버깅 강의는 반복 변수 i에 맞춰 적었다고 할 수 있고, 113페이지는 단순 나열이라고 볼 수 있겠네요.
행복한 하루되세요 :)
-
*2019-06-19 00:40:51
답변 잘 읽었습니다.
더 궁금해진 문제를 만나서 추가 질문 드립니다..
14페이지 디버깅의 강의를 보았는데 여기서는 i<7 보다 작았을때 NO가되어있으므로 전인 6에서 no가 안되는 부분인데
부록책 14페이지의 디버깅 과정과 113페이지 디버깅 과정의 차이가 있네요
출력값만 나오면되는거라서 어딜 가든 큰 영향이 없기때문에 저렇게 설명 되있는건가요/?