프로그래밍/백준알고리즘

백준 알고리즘 2750번 풀이 - 수 정렬하기[버블정렬]

밍구몬 2019. 9. 25. 13:18

 

정렬에는 여러가지가 있지만 간단하게 버블정렬을 이용하여 풀었다.

 

처음에는 정렬만 하면 되는줄 알고 풀었는데 실패가 떠서 보니 중복까지 제거해줘야한다..

 

소스

import java.util.Scanner;

public class Main {
	public static void main(String args[]){
		
		Scanner s = new Scanner(System.in);
		
		int n = s.nextInt();
		int m;
		int tmp;
		boolean flag=false;

		int[] arr = new int[n];
		
		int k=0;
		for(int i=0;i<n;i++,k++){
			m=s.nextInt();
			arr[i]=m;
			for(int j=0;j<i;j++){	//중복제거
				if(arr[j]==arr[i]){
					k--;
					break;
				}
			}
		}
		
		for(int i=0;i<n-1;i++){
			for(int j=1;j<n;j++){
				if(arr[j-1] > arr[j]){
					tmp = arr[j-1];
					arr[j-1] = arr[j];
					arr[j] = tmp;
					flag=true;
				}
			}
			if(!flag) break;
		}
		
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
		
	}
}

입력을 받을 때 중복을 미리 제거하고, 그 다음 버블 정렬을 하였다.