본문 바로가기
프로그래밍/알고리즘 풀이

백준 10867번 : 중복 빼고 정렬하기 JAVA

by 방구석개발자 2021. 1. 14.
반응형

import java.io.*;
import java.util.*;

public class Main {
	
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n=Integer.parseInt(br.readLine());
		int [] plusNum=new int[1001];
		int [] minusNum=new int[1001];
		String [] strArr=br.readLine().split(" ");
		StringBuffer strBuffer=new StringBuffer();
		for(int i=0;i<n;i++) {
			int num= Integer.parseInt(strArr[i]);
			if(num>=0) {
				plusNum[num]=1;
			}else {
				minusNum[num*(-1)]=1;
			}
		}
		
		for(int i=1000;i>=0;i--) {
			if(minusNum[i]>0) strBuffer.append(-i+" ");
		}
		for(int i=0;i<1001;i++) {
			if(plusNum[i]>0) strBuffer.append(i+" ");
		}
		
		System.out.println(strBuffer);
		
	}
}

카운팅정렬 기법을 활용하여 중복인지 아닌지 계산하지 않고 정렬하였습니다.

반응형

댓글