책 내용 질문하기
알고리즘 배열 행렬변환 예제 질문
도서
[2011] 정보처리기사 실기
페이지
207
조회수
110
작성일
2011-05-24
작성자
첨부파일

알고리즘 배열 공부중 궁금증이 있어 질문드립니다.

207페이지 행렬변환 예제 순서도의

두번째 반복문에서 M이 Row보다 클 경우

B배열의 행변수 L은 1증가시켜 L=L+1이고,

열변수 M은 초기화하여 M=0으로 풀었는데,

디버깅해보니

i J L M A(l,J)

1 1 1 1 A(1,1) - > B(1,1)

2 2 A(1,2) - > B(1,2)

3 3 A(1,3) - > B(1,3)

2 1 4 A(2,1) - > B(1,4)

2 5 A(2,2) - > B(1,5)

3 2 6 ->0 A(2,3) -> B(2,0) --- M이 Row(5)보다 큰 경우에서 L을 1증가하고 M을초기화하면

이런 결과가 나오는 것 같아요.

A(2,3)은 B(2,1)로 치환되어야 하는데 M=0이 대입되어

B(2,0)이 되니 M=1이 되어야 하는게 아닌가요?

** 반복문에서는 행변수L 1증가, 열변수M 초기화를 각각 하고나면

다시 반복문 시작부로 돌아가 새로운 J값으로 M을 1증가시켜

A(3,3) -> B(2,1)으로 이어지게 되지 않나요?

책의 정답이 맞다면, 제가 어느부분에서 디버깅을 잘못한 것인지 좀 알려주세요.

(비전공자라 두서없이 질문드려 죄송합니다.^^;;)

답변
2011-05-25 09:39:50

안녕하세요.

M >= ROW에서 처음 YES가 되는 경우는

i가 2

J가 3

L이 1

입니다.

이 때 M이 ROW와 같아져 L은 2로 증가하고 M은 0이 됩니다.

이 상태에서 안쪽 반복을 수행하여

M은 M+1에 의해 1이 된 후 배열에 저장되므로

A(2,3) -> B(2,0)이 아니라 B(2,1)이 됩니다. <- 이 부분에서 혼동하셨네요.

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

"
  • *
    2011-05-25 09:39:50

    안녕하세요.

    M >= ROW에서 처음 YES가 되는 경우는

    i가 2

    J가 3

    L이 1

    입니다.

    이 때 M이 ROW와 같아져 L은 2로 증가하고 M은 0이 됩니다.

    이 상태에서 안쪽 반복을 수행하여

    M은 M+1에 의해 1이 된 후 배열에 저장되므로

    A(2,3) -> B(2,0)이 아니라 B(2,1)이 됩니다. <- 이 부분에서 혼동하셨네요.

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

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