[코테6_1]선택정렬

byeol·2022년 12월 19일
0

코딩테스트

목록 보기
37/42

✔️내 답-> 정답

선택정렬이 앞에서부터 작은 값을 채워넣는 것이다.

  1. 비교대상 : 처음~끝
    처음 칸에는 가장 작은 값을 넣고
    가장 작은 값이 있었던 자리에 처음 칸에 있었던 값 넣기

  2. 비교대상 : 두번째~끝
    두번째 칸에는 두번째부터 끝까지를 비교했을 때 가장 작은 값을 넣고
    가장 작은 값이 있었던 자리에 두번째 칸에 있었던 값 넣기

  3. 비교대상 : 세번쩨~끝
    세번째 칸에는 세번째부터 끝까지를 비교했을 때 가장 작은 값을 넣고
    가장 작은 값이 있었던 자리에 세번째 칸에 있었던 값 넣기

    ...

    이걸 처음부터 끝까지 반복한다면 오름차순으로 정렬된다.

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+" ");  
 }
}

✔️ 강의 답

내가 실수한 중복적인 부분

profile
꾸준하게 Ready, Set, Go!

0개의 댓글