알고리즘

백준 #2750 java 2023.01.26

chaewonni 2023. 1. 26. 03:40

수 정렬하기 문제! 학교 프로그래밍 수업에서 기말고사로 오름차순 정렬을 이용하는 문제가 나왔었는데, 그 때는 긴장하고 당황해서 그랬는지 정렬을 구현하지 못하고 제출했던 기억이 있다... 지금 생각해도 너무 아쉽다.

 

package boj_basic.step10;

import java.util.Scanner;

public class Q2750 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int[] arr = new int[N+1];
		
		for(int i = 0; i<N; i++) {
			int num = sc.nextInt();
			arr[i]=num;
		}
		
		int tmp = 0;
		for(int i = 1; i<N; i++) {
			for(int j = 0; j<i; j++) {
				if(arr[i-j]<arr[i-j-1]) {
					tmp=arr[i-j-1];
					arr[i-j-1]=arr[i-j];
					arr[i-j]=tmp;
				}
			}
		}
		
		for(int i = 0; i<N; i++) {
			System.out.println(arr[i]);
		}
	}

}

가장 단순한 삽입정렬을 이용하여 구현해주었다. tmp를 이용하여 앞 뒤 값을 바꿔주는 식으로 코드를 작성해보았다!

예를 들어 5 2 3 4 1 -> 2 5 3 4 1 -> 2 3 5 4 1 -> 2 3 4 5 1 -> 1 2 3 4 5 이런식으로 진행된다.

코딩은 많이 풀수록 실력도 느는 것 같다.