책 내용 질문하기
336페이지 문제 7번 문의
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
336
조회수
89
작성일
2019-05-20
작성자
탈퇴*원
첨부파일

문제 7번이 전체적으로 잘 이해가 안 가요.

풀이나 디버깅을 봐도 왜 이렇게 답안이 도출되는지 잘 모르겠어요...

처음부터 순서대로 풀이 부탁드립니다 ㅠㅠ

답변
2019-05-21 17:40:55

안녕하세요 길벗수험서 운영팀입니다.

 

교재 612페이지 기준으로 설명드리겠습니다.

 

일단 main() 부입니다.

배열 n[]에 4, 2, 7, 1을 저장한 후, 배열 n을 통채로 사용자 정의 함수로 보내버립니다. - arr(n);

이후 for문을 통해 n[i]로 배열의 각 요소들을 출력하도록 하고 있죠.

 

이제 arr() 부로 넘어가보죠.

함수에서 n을 a로 받았으니 a배열은 n배열을 의미합니다. 

6번을 보시면 a[0]이 0이거나 1보다 작은 경우 return하도록 되어 있습니다. a[0]은 4이므로 8번으로 넘어갑니다.

 

8번, 10번 반복문은 

•i가 0일 때 j는 1에서 3까지 3회 반복

•i가 1일 때 j는 2에서 3까지 2회 반복

•i가 2일 때 j는 3에서 3까지 1회 반복하게 됩니다.

 

이제 11번 비교문을 보세요. 조금 이해가 쉽도록 좌우를 바꿔보겠습니다.

a[sw] > a[j] 입니다. j는 for문을 통해 꾸준히 증가하는 수이고, sw는 더 작은 수가 나올 때마다 해당 변수 위치를 저장합니다. 

a[0] > a[1]을 비교하여 a[1]이 더 작으면 sw에 1을 저장합니다. (sw=1)

a[1] > a[2]를 비교하여 a[2]가 더 작지 않으니 sw는 그대로 1입니다. (sw=1)

a[1] > a[3]를 비교하여 a[3]이 더 작으니 sw에 3을 저장합니다. (sw=3) 

 

이제 13~15번 과정을 거쳐, a[i]와 a[sw]를 교체하는 과정을 거칩니다.

배열에서 a[0]과 a[3]이 교체되게 되죠.

 

이와 같은 방식으로 오름차순 정렬이 이루어지게 되고, 이를 완료하면 16번의 return을 거쳐 사용자 정의 함수가 종료되게 됩니다.

 

이후 다시 main으로 돌아가 출력문을 수행하면 오름차순으로 정렬된 1, 2, 4, 7이 출력되게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-21 17:40:55

    안녕하세요 길벗수험서 운영팀입니다.

     

    교재 612페이지 기준으로 설명드리겠습니다.

     

    일단 main() 부입니다.

    배열 n[]에 4, 2, 7, 1을 저장한 후, 배열 n을 통채로 사용자 정의 함수로 보내버립니다. - arr(n);

    이후 for문을 통해 n[i]로 배열의 각 요소들을 출력하도록 하고 있죠.

     

    이제 arr() 부로 넘어가보죠.

    함수에서 n을 a로 받았으니 a배열은 n배열을 의미합니다. 

    6번을 보시면 a[0]이 0이거나 1보다 작은 경우 return하도록 되어 있습니다. a[0]은 4이므로 8번으로 넘어갑니다.

     

    8번, 10번 반복문은 

    •i가 0일 때 j는 1에서 3까지 3회 반복

    •i가 1일 때 j는 2에서 3까지 2회 반복

    •i가 2일 때 j는 3에서 3까지 1회 반복하게 됩니다.

     

    이제 11번 비교문을 보세요. 조금 이해가 쉽도록 좌우를 바꿔보겠습니다.

    a[sw] > a[j] 입니다. j는 for문을 통해 꾸준히 증가하는 수이고, sw는 더 작은 수가 나올 때마다 해당 변수 위치를 저장합니다. 

    a[0] > a[1]을 비교하여 a[1]이 더 작으면 sw에 1을 저장합니다. (sw=1)

    a[1] > a[2]를 비교하여 a[2]가 더 작지 않으니 sw는 그대로 1입니다. (sw=1)

    a[1] > a[3]를 비교하여 a[3]이 더 작으니 sw에 3을 저장합니다. (sw=3) 

     

    이제 13~15번 과정을 거쳐, a[i]와 a[sw]를 교체하는 과정을 거칩니다.

    배열에서 a[0]과 a[3]이 교체되게 되죠.

     

    이와 같은 방식으로 오름차순 정렬이 이루어지게 되고, 이를 완료하면 16번의 return을 거쳐 사용자 정의 함수가 종료되게 됩니다.

     

    이후 다시 main으로 돌아가 출력문을 수행하면 오름차순으로 정렬된 1, 2, 4, 7이 출력되게 되죠.

     

    행복한 하루되세요 :)

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