책 내용 질문하기
알고리즘 5장 반배정 순서도 질문
도서
[2011] 정보처리기사 실기
페이지
246
조회수
138
작성일
2011-05-25
작성자
첨부파일

앞서 질문드린 내용에 명쾌한 답변 감사합니다.

공부 중에 또 한가지 질문드립니다.

알고리즘 5장의 반배정(p.246) 순서도를 디버깅 하는게 잘 안되어서

도움을 요청합니다.

순서도 하단부 반복문에서

A(NMG) < > 0 조건에서 YES인 경우, i = i-1 을 치환하도록 되어 있는데

이처럼 A(NMG)배열에 값이 있는 경우, i = i-1 이후에 진행이 잘 안됩니다.

제가 예제에서 A(2) = 1 / A(4) = 2 / A(6) = 1 값을 넣은 이후의 디버깅 결과를 올려보면

i NMG A(NMG) CNT BAN

1 7 = 6+1 >6 이므로 A(1) 2 1

NMG=1 치환

2 2 = 1+1 A(2) >0 이므로

i = i-1 처리

1=2-1 3= 2+1 A(3)

2 4= 3+1 A(4) >0이므로

i = i-1처리

1=2-1 5= 4+1 A(5)

2 6 A(6) ......... 이런 식으로 진행되버리고 맙니다.

(반복문 i = 1,2,1 범위에서 계속 반복되어 버립니다.)

해답에는 i=0 으로 치환되는 단계 ( i = 1 -> 2에서 i=i-1처리후 -> 1 -> 0 순으로) 가 나오는데,

저의 디버깅에는 무슨 오류가 있는 것인가요?

A(2), A(4), A(6) 다음에 1반이 치환될 배열은 A(?) 인가요?

답변
2011-05-30 09:54:25

안녕하세요.

반 배정은 이미 배정된 반은 새롭게 배정되는 경우에서 제외하면서 진행되므로 뒤쪽으로 갈 수록 건너뛰는 경우가 많아 여러차례 반복된 후에 배정되므로 꼼꼼하게 체크하면서 진행하지 않으면 혼동될 수 있습니다.

색인 다른 펜을 이용해 이미 배정된 반과 배정될 반, 건너뛰는 것 등을 구분하면서 디버깅을 수행해 보세요.

앞에서부터 진행되는 과정 상에서 설명을 드려야 하다보니 디버깅 과정이 길어 서면을 통한 답변에 어려움이 있습니다.

이 부분에서 어려움을 겪는 경우가 대부분 배정 과정에서 일부 과정을 놓치는 경우가 대부분 이었습니다.

이점 염두에 두고 앞서 언급한 방법에 따라 차근히 시간을 두고 디버깅을 수행해 보세요.

오늘도 즐거운 하루 되세요.

"
  • *
    2011-05-30 09:54:25

    안녕하세요.

    반 배정은 이미 배정된 반은 새롭게 배정되는 경우에서 제외하면서 진행되므로 뒤쪽으로 갈 수록 건너뛰는 경우가 많아 여러차례 반복된 후에 배정되므로 꼼꼼하게 체크하면서 진행하지 않으면 혼동될 수 있습니다.

    색인 다른 펜을 이용해 이미 배정된 반과 배정될 반, 건너뛰는 것 등을 구분하면서 디버깅을 수행해 보세요.

    앞에서부터 진행되는 과정 상에서 설명을 드려야 하다보니 디버깅 과정이 길어 서면을 통한 답변에 어려움이 있습니다.

    이 부분에서 어려움을 겪는 경우가 대부분 배정 과정에서 일부 과정을 놓치는 경우가 대부분 이었습니다.

    이점 염두에 두고 앞서 언급한 방법에 따라 차근히 시간을 두고 디버깅을 수행해 보세요.

    오늘도 즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.