[처음 질문내용]
기출문제집에 15페이지 디버깅 방법을 기술 하셨는데요
디버깅 20번 에서
i = 6 ,J = 21 일때
i+1을 하여 i의 값은 7입니다. 그래서 i < 7을 연산 할때는
i NO 가 되어야 하는건 아닌가요 ?
답볍 부탁 드립니다.
[답변내용]
안녕하세요.
디버기을 표를 보시면 i와 J가 값을 가지면서 비교를 시작합니다.
초기값은 i, J 모두 0으로 시작한 상태에서
i = i + 1과 J = J + i를 수행하여 i, J 모두 1이 된 상태에서 i<7을 수행합니다.
즉 값이 변화된 후 i<7 을 수행합니다.
그러므로 i가 6일 때 J가 21인 상태에서 i<7을 비교하는데 이때 i는 7이 아니라 6인 상태인 것이죠.
직접 디버깅을 수행해 보면서 확인하셔야 명확해 집니다.
오늘도 즐거운 하루 되세요.
[추가질문]
그러면 왜 기출 문제집 15페이지 문제하고 1편 알고리즘 26페이지 문제하고 왜 디버깅이 틀리나요
안녕하세요.
디버깅 방법을 설명한 이유 때문입니다.
기출문제처럼 각 변수의 가로 위치를 맞춰서 i가 1이고 J가 1일 때 i<7이 YES인 것으로 표기하게 되면, 즉 모든 변수의 가로 위치를 맞추면서 디버깅을 하면 공간을 많이 필요로 하게 됩니다.
하지만 실제 시험에서 디버깅 공간은 시험지의 하단 일부만 제공되므로 약식으로 디버깅을 해야 합니다.
그 방법이 1편 25쪽 알고리즘 디버깅 정답처럼 i<7 부분의 디버기을 결과를 위에서부터 붙여서 기록하는 것입니다.
이것이 가능한 것은 알고리즘에서 각 변수의 값 변화는 해당 변수의 값 변화만 확인하면 되기 때문입니다. 각 변수의 가로 위치를 맞추면서 파악하지 않아도 순서도를 파악하는데는 큰 어려움이 없다는 의미입니다.
오늘도 즐거운 하루 되세요.
"-
*2011-10-13 11:01:27
안녕하세요.
디버깅 방법을 설명한 이유 때문입니다.
기출문제처럼 각 변수의 가로 위치를 맞춰서 i가 1이고 J가 1일 때 i<7이 YES인 것으로 표기하게 되면, 즉 모든 변수의 가로 위치를 맞추면서 디버깅을 하면 공간을 많이 필요로 하게 됩니다.
하지만 실제 시험에서 디버깅 공간은 시험지의 하단 일부만 제공되므로 약식으로 디버깅을 해야 합니다.
그 방법이 1편 25쪽 알고리즘 디버깅 정답처럼 i<7 부분의 디버기을 결과를 위에서부터 붙여서 기록하는 것입니다.
이것이 가능한 것은 알고리즘에서 각 변수의 값 변화는 해당 변수의 값 변화만 확인하면 되기 때문입니다. 각 변수의 가로 위치를 맞추면서 파악하지 않아도 순서도를 파악하는데는 큰 어려움이 없다는 의미입니다.
오늘도 즐거운 하루 되세요.
"