정보처리기사 2014년 2회 대비 정보처리산업기사 실기문제에서요
알고리즘부분에서
4번정답이 S=MID라고 되어있는데, 도저히 이값이 나올수가 없는데
잘못된게 아닌가요??
안녕하세요.
입력된 값의 좌우 위치를 바꾼다는 것은 첫 위치(S)의 값과 끝 위치의 값(T)을 서로 교환하되 첫 위치는 하나씩 증가하고 끝 위치는 하나씩 감소 시킵니다.
이러다 처음 위치가 중간 위치와 같아 지면 더이상 교환을 수행할 필요가 없게 되죠.
예를 들어
2, 1, 3, 4, 5, 0이 입력된 경우
끝 위치(T)는 마지막 0은 위치를 교환할 대상에서 제외하기 위해 2번 괄호에서 T = S - 1을 하여 끝위치(T)는 5가 됩니다.
그 바로 아래에서 S = 1을 지정하여 시작위치(S)는 1이 됩니다.
MID는 INT((S+T)/2)에 의해 3이 됩니다.
먼저 교환을 수행하면 A(1)과 A(5)가 교환됩니다.
S와 MID가 같지 않으므로 No가 되죠. 그럼 S는 1증가 T는 1감소, 이제 S는 2, T는 4가되어
A(2)와 A(4)를 교환합니다.
아직도 S와 MID는 같지 않으므로 No가 되죠. 그럼 S는 1증가 T는 1감소, 이제 S는 3, T는 3되어
A(3)과 A(3)을 교환합니다.
교환할 대상이 홀수개 인 경우에는 중간 값을 서로 교환하는 의미없는 작업이 수행되지만 이는 짝수인 경우도 대비하기 위함입니다.
결구 이제 교환이 마무리 되었습니다.
S와 MID가 같아졌다는 것이죠.
그럼 출력하고 종료합니다.
좀더 자세한 내용은 교재 Section 048 숫자의 좌우 위치 변경 부분을 참고하세요.
오늘도 즐거운 하루 되세요.
"-
*2014-07-04 09:15:09
안녕하세요.
입력된 값의 좌우 위치를 바꾼다는 것은 첫 위치(S)의 값과 끝 위치의 값(T)을 서로 교환하되 첫 위치는 하나씩 증가하고 끝 위치는 하나씩 감소 시킵니다.
이러다 처음 위치가 중간 위치와 같아 지면 더이상 교환을 수행할 필요가 없게 되죠.
예를 들어
2, 1, 3, 4, 5, 0이 입력된 경우
끝 위치(T)는 마지막 0은 위치를 교환할 대상에서 제외하기 위해 2번 괄호에서 T = S - 1을 하여 끝위치(T)는 5가 됩니다.
그 바로 아래에서 S = 1을 지정하여 시작위치(S)는 1이 됩니다.
MID는 INT((S+T)/2)에 의해 3이 됩니다.
먼저 교환을 수행하면 A(1)과 A(5)가 교환됩니다.
S와 MID가 같지 않으므로 No가 되죠. 그럼 S는 1증가 T는 1감소, 이제 S는 2, T는 4가되어
A(2)와 A(4)를 교환합니다.
아직도 S와 MID는 같지 않으므로 No가 되죠. 그럼 S는 1증가 T는 1감소, 이제 S는 3, T는 3되어
A(3)과 A(3)을 교환합니다.
교환할 대상이 홀수개 인 경우에는 중간 값을 서로 교환하는 의미없는 작업이 수행되지만 이는 짝수인 경우도 대비하기 위함입니다.
결구 이제 교환이 마무리 되었습니다.
S와 MID가 같아졌다는 것이죠.
그럼 출력하고 종료합니다.
좀더 자세한 내용은 교재 Section 048 숫자의 좌우 위치 변경 부분을 참고하세요.
오늘도 즐거운 하루 되세요.
"