✔️내 답-> 정답
선택정렬이 앞에서부터 작은 값을 채워넣는 것이다.
비교대상 : 처음~끝
처음 칸에는 가장 작은 값을 넣고
가장 작은 값이 있었던 자리에 처음 칸에 있었던 값 넣기
비교대상 : 두번째~끝
두번째 칸에는 두번째부터 끝까지를 비교했을 때 가장 작은 값을 넣고
가장 작은 값이 있었던 자리에 두번째 칸에 있었던 값 넣기
비교대상 : 세번쩨~끝
세번째 칸에는 세번째부터 끝까지를 비교했을 때 가장 작은 값을 넣고
가장 작은 값이 있었던 자리에 세번째 칸에 있었던 값 넣기
...
이걸 처음부터 끝까지 반복한다면 오름차순으로 정렬된다.
import java.util.*;
public class Main{
public static int[] solution(int n, int[] arr){
for(int i=0;i<n;i++) {
int min=Integer.MAX_VALUE;
int index=0;
for(int j=i+1;j<n;j++) {
if(min>arr[j]) {
min=arr[j];
index=j;
}
}
if(arr[i]>min) {
int tmp = arr[i];
arr[i]=min;
arr[index]=tmp;
}
}
return arr;
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++) arr[i]=kb.nextInt();
for(int x : solution(n,arr)) System.out.print(x+" ");
}
}
✔️ 강의 답
내가 실수한 중복적인 부분