안녕하십니까??
437쪽의 알고리즘을 가지고 438쪽 문제를 디버깅하는 도중 질문있습니다.
437쪽의 알고리즘에 반복문을 보게되면 A(NMG) <>0 에서 A(NMG)가 0값을 가지지 않는다면 i값을 1을 뺍니다.
이 과정에서 i값을 1뺀다면 다시한번 반복문을 실행하는 것인지 아니면 i값을 1빼고 반복문을 나와서 알고리즘을 계속
이어가는지 모르겠습니다.
안녕하세요.
A[NMG]가 0을 갖지 않는다는 것은 그 위치가 비어있지 않다는 것입니다.
이 경우 건너뛰는 4명에 포함해야 하지 않아야 합니다. 하지만 반복문에 의해 i(건너뛰는 4명)가 이미 증가된 상태이기에 i를 -1 한 상태로 다시 반복문을 계속해서 수행합니다. 반복문은 건너뛰는 4명 자리에 값을 모두 저장할 때까지 반복되기 때문입니다.
뒤로 갈수록 건너뛰는 4명에 포함되지 않는 경우가 많이 발생하여 -1과 반복이 무수히 수행됩니다. 그러므로 이 알고리즘을 디버깅할 때는 색이 다른 여러개의 펜을 준비하여 각 배열을 정확히 체크하면서 진행해야 혼동되지 않을 수 있습니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-29 10:36:29
안녕하세요.
A[NMG]가 0을 갖지 않는다는 것은 그 위치가 비어있지 않다는 것입니다.
이 경우 건너뛰는 4명에 포함해야 하지 않아야 합니다. 하지만 반복문에 의해 i(건너뛰는 4명)가 이미 증가된 상태이기에 i를 -1 한 상태로 다시 반복문을 계속해서 수행합니다. 반복문은 건너뛰는 4명 자리에 값을 모두 저장할 때까지 반복되기 때문입니다.
뒤로 갈수록 건너뛰는 4명에 포함되지 않는 경우가 많이 발생하여 -1과 반복이 무수히 수행됩니다. 그러므로 이 알고리즘을 디버깅할 때는 색이 다른 여러개의 펜을 준비하여 각 배열을 정확히 체크하면서 진행해야 혼동되지 않을 수 있습니다.
오늘도 즐거운 하루 되세요.