책 내용 질문하기
알고리즘 질문이요
도서
[2012] 정보처리기사 실기
페이지
140
조회수
256
작성일
2012-10-12
작성자
첨부파일

알고리즘 p.140 삽입정렬문제인데요.

K가 반복될 때 K=i-1,1,-1 이잖아요.
그러면 K=1이 될때 반복을 빠져나와야 하지 않나요?
첫번째 반복할 때(i=2니까 k=1,1,-1)일때는 그럼 한번만 돌고 나와야 될꺼같은데
답지 디버깅을 보니까
k=0이 될때까지 한번 더 돌았더라구요.
k=0이 되면
A(K)는 A(0)이 되잖아요.
A(0)은 없는데 그래도 되나요?
K=1이 되면 반복을 그만하는건데 왜 K=0이 될때까지 한번 더 돌죠?
이해가 안되요ㅠㅠ제가 반복을 잘못이해한건가요?ㅠ
답변
2012-10-15 14:41:59

안녕하세요.

해당 페이지 전문가의 조언에서도 언급했듯이 반복문의 반복 변수는 반복문을 빠져나갈때 증가치가 한번 더 적용된 값으로 빠져나옵니다.

즉 k가 3, 1, -1로 5부터 0까지 -1씩 증가한다고 하면

먼저 k가 3인 상태로 반복문을 수행합니다. 1회 수행

다음 증가치(-1)를 적용하여 k가 2가 된 후 종료 기준값(1)과 비교합니다. 아직 종료 기준값보다 작지 않으므로 반복문을 수행합니다. 2회 수행

다음 증가치(-1)를 적용하여 k가 1이 된 후 종료 기준값(1)과 비교합니다. 아직 종료 기준값보다 작지 않으므로 반복문을 수행합니다. 3회 수행

다음 증가치(-1)를 적용하여 k가 0이 된 후 종료 기준값(1)과 비교합니다. 종료 기준값보다 작으므로 반복문을 수행하지 않고 빠져나옵니다.

이와 같이 증가치를 적용한 후 종료 기준값과 비교하는 방식이므로 실제 반복문을 빠져나올때 반복 변수의 값은 종료 기준값보다 증가치가 한번 더 적용된 값으로 빠져나오게 됩니다.

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

"
  • *
    2012-10-15 14:41:59

    안녕하세요.

    해당 페이지 전문가의 조언에서도 언급했듯이 반복문의 반복 변수는 반복문을 빠져나갈때 증가치가 한번 더 적용된 값으로 빠져나옵니다.

    즉 k가 3, 1, -1로 5부터 0까지 -1씩 증가한다고 하면

    먼저 k가 3인 상태로 반복문을 수행합니다. 1회 수행

    다음 증가치(-1)를 적용하여 k가 2가 된 후 종료 기준값(1)과 비교합니다. 아직 종료 기준값보다 작지 않으므로 반복문을 수행합니다. 2회 수행

    다음 증가치(-1)를 적용하여 k가 1이 된 후 종료 기준값(1)과 비교합니다. 아직 종료 기준값보다 작지 않으므로 반복문을 수행합니다. 3회 수행

    다음 증가치(-1)를 적용하여 k가 0이 된 후 종료 기준값(1)과 비교합니다. 종료 기준값보다 작으므로 반복문을 수행하지 않고 빠져나옵니다.

    이와 같이 증가치를 적용한 후 종료 기준값과 비교하는 방식이므로 실제 반복문을 빠져나올때 반복 변수의 값은 종료 기준값보다 증가치가 한번 더 적용된 값으로 빠져나오게 됩니다.

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

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