| | | 제 목 | 정보처리기사 2010년2회 알고리즘 기출 | | | 글쓴이 | 임진협 | 작성일 | 2014-04-06 오후 9:51:42 | 조회수 | 875 | | | 글공유 | |
| | | 답변 감사합니다.선생님 ^^ 선생님, 제가 자료실에서 다운받은 정보처리기사 2010년 2회문제는 3중반복문을 이용하여 90도씩 회전하여 배열하는 문제였습니다. 답변이랑 다른문제인것 같습니다. 확인하시고 답변 부탁드려요~!
--------------------------------------------------------------------------------- 안녕하세요? 임진협 회원님 ^^
정보처리 자격시험 온라인 강의, 최강! 기사친구 입니다.
네.. 이문제는 정렬 후 모래시계형태로 숫자를 넣는 알고리즘입니다.
우선, 정렬은 선택정렬을 이용해서 내림차순으로 정렬을 하고 있습니다.
그래서 정렬공식 '조로의 칼자국(?)'을 통해 1번 답은 쉽게 찾으실 수 있었을 거예요^^
그럼 2~5까지를 질문을 주셨는데..
이 부분은 정렬이 완료된 후에 숫자를 모래시계모양을 넣는 과정인데요...
이 문제는 우리수업의 마름모 모양을 조금 응용해서 생각하면 원리는 비슷하구요.
모래시계관련 내용은 내강의실의 [특강/기출/모의고사]탭의 2012년 2회 기출문제풀이강의에
모래시계 강의가 있습니다.
이부분을 참고하여 문제를 보시면 좀더 쉽게 이해가 가실 거예요^^
그래도 강의를 들으시기 전에 간단하게 설명을 드리자면..
우선 A(17)의 배열 방안에 선택정렬을 통해서 내림차순으로 숫자를 넣어 두게 됩니다.
그럼 17개의 배열의 첫번째 방에 가장 큰 수에 해당하는 50 이 기억이 되고 맨 끝방에
가장 작은 수에 해당하는 1이 저장이 되겠죠.
그후 A(E)를 통해서 17개의 숫자를 5*5 매트릭스에 모래시계 모양으로 넣게 되는데
D(1,1)에 50을 넣고 ... 마지막 D(5,5)에 1을 넣게 되는 과정을 진행이 됩니다.
따라서 모래시계모양으로 넣기 위해서...
(2)과 (3)이 있는 이중반복문은 1번째 행 부터 3번째 행에 숫자를 넣는 과정이므로..
(2)은 D(G,I)배열의 열에 해당하는 부분의 반복으로 열은 1~5열로 변해야 하므로
I는 G값을 이용해서 I=G, 6-G, 1로 열의 값이 1~5까지 증가하게 만들어 줍니다.
(3)은 정렬되어있는 A(E)의 E 값을 증가시켜주기 위해 E=E+1을 사용하게 되구요.
(4)과 (5)이 있는 이중반복문은 4번째 행과 5번째 행에 숫자를 넣는 과정이므로..
(4)은 G값을 G=H+1, 5, 1 을 통해서 4번째 행과 다섯번째 행을 만들어 주는 반복문입니다.
(5)은 2차원배열 D(G, I)에 정렬이 되어있었던 A(E)에 있는 나머지 숫자들을 넣어주는 과정이므로
D(G, I)=A(E) 가 되는 것입니다.
우선, 모래시계 관련 강의를 한번 더 들으시고 이문제를 보신다면 좀더 쉽게 정리가 되실거예요^^
그럼 오늘도 파이팅하시고 필승합격하세요^^
2010년 2회 알고리즘에서
1번답은 알겠는데요 .
2번 부터는 어떤 원리로 저런
정답이 나오는지 궁급합니다.
안녕하세요? 임진협 회원님 ^^
정보처리 자격시험 온라인 강의, 최강! 기사친구 입니다.
네.. 이문제는 정렬 후 모래시계형태로 숫자를 넣는 알고리즘입니다.
우선, 정렬은 선택정렬을 이용해서 내림차순으로 정렬을 하고 있습니다.
그래서 정렬공식 | |
|
|