반응형
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);
}
}
카운팅정렬 기법을 활용하여 중복인지 아닌지 계산하지 않고 정렬하였습니다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 백준 9012번: 괄호 JAVA (0) | 2021.04.06 |
---|---|
[알고리즘] 백준 10816번: 숫자 카드2 JAVA (0) | 2021.04.03 |
[알고리즘] 백준 11650, 11651번: 좌표 정렬하기, 좌료 정렬하기2 JAVA (0) | 2021.01.14 |
[알고리즘] 백준 1181번: 단어정렬 JAVA (0) | 2021.01.07 |
[알고리즘] 백준 1026번: 보물 JAVA (0) | 2021.01.03 |
댓글