문제
다음 C 코드의 실행 결과로 출력되는 값은?
Cint arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = 7; for(int i = 0; i < n-1; i++) { int min_idx = i; for(int j = i+1; j < n; j++) { if(arr[j] < arr[min_idx]) min_idx = j; } if(min_idx != i) { int temp = arr[i]; arr[i] = arr[min_idx]; arr[min_idx] = temp; } } printf("%d", arr[2]);
① 22 ② 25 ③ 34 ④ 64
정답
1번
해설
i=0: j=16에서 최솟값 arr[5]=11, min_idx=5. swap(0,5) → {11, 34, 25, 12, 22, 64, 90}
i=1: j=26에서 arr[3]=12가 최소, min_idx=3. swap(1,3) → {11, 12, 25, 34, 22, 64, 90}
i=2: j=3~6에서 arr[4]=22가 최소, min_idx=4. swap(2,4) → {11, 12, 22, 34, 25, 64, 90}
arr[2] = 22