안녕하세요, 현재 정보처리기사 실기 준비중인 수험생입니다.
기출문제짐 알고리즘 유형3 자료 구조 에서 이해가 잘 안 되는 부분이 있어 문의 드립니다.
알고리즘의 경우 (버블정렬) 정렬하고자 하는 개수와 회전수가 아래와 같이 있습니다.
N=5
I=0
하지만 C언어에서는 아래와 같이 시작하는 것을 볼 수 있었습니다.
N=4
I=-1
혹시 j 때문에 배열 수를 맞춰주기 위해 i를 -1부터 시작하는 것이라면, 아래와 같이 설정한 후
N=5
I=-1
J<N-(I+2), I>=-n-2 해도 답이 되는 것인 지 문의 드립니다.
안녕하세요 길벗수험서 운영팀입니다.
예, n=5, i=-1의 초기값에 아래 조건들을
J<N-(I+2), I>=-n-2 으로 수정하신 것은 코드가 문제의 의도대로 정확하게 수행되므로 정답입니다.
코드 내에서 변수 i가 사용되는 부분을 확인하면 버블 정렬의 교환 과정의 반복 조건으로만 활용되고 있음을 확인할 수 있습니다.
while (j < n - (i + 2));
if (i >= n - 2) break;
때문에 변수 i의 초기값은 위의 두 코드에서만 반복이 의도한 횟수만큼 수행되도록 조정해주신다면 어떠한 값이 들어가도 무관합니다.
행복한 하루되세요 :)
-
관리자2019-08-28 13:37:09
안녕하세요 길벗수험서 운영팀입니다.
예, n=5, i=-1의 초기값에 아래 조건들을
J<N-(I+2), I>=-n-2 으로 수정하신 것은 코드가 문제의 의도대로 정확하게 수행되므로 정답입니다.
코드 내에서 변수 i가 사용되는 부분을 확인하면 버블 정렬의 교환 과정의 반복 조건으로만 활용되고 있음을 확인할 수 있습니다.
while (j < n - (i + 2));
if (i >= n - 2) break;
때문에 변수 i의 초기값은 위의 두 코드에서만 반복이 의도한 횟수만큼 수행되도록 조정해주신다면 어떠한 값이 들어가도 무관합니다.
행복한 하루되세요 :)