반응형
문제
N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.
입력
첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.
출력
첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.
테스트 케이스
입력 1
10
1 4 2 3 1 4 2 3 1 2
출력 1
1 2 3 4
입력 2
10
1 1 1 1 1 1 1 1 1 1
출력 2
1
입력 3
5
-1323 123 5 123 -4
출력 3
-1323 -4 5 123
접근
1. 숫자 하나를 입력받습니다.
2. 해당 숫자만큼 숫자를 입력받습니다.
2에서 받은 숫자들을 중복 제거하고 정렬해서 출력하면 끝입니다.
숫자의 순서도 중요하고 중복도 제거도 필요하므로 treeset을 써서 간단히 해결할 수 있었습니다.
코드
import java.awt.desktop.SystemEventListener;
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
/*
10867 problem
*/
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
TreeSet<Integer> hs = new TreeSet<>();
int num = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<num; i++) {
hs.add(Integer.parseInt(st.nextToken()));
}
Iterator it = hs.iterator();
while(it.hasNext()) {
bw.write(it.next()+" ");
}
bw.flush();
br.close();
bw.close();
}
}
주의
반응형
'공부 정리 > 백준' 카테고리의 다른 글
[백준] 자바 1026 보물 (0) | 2021.09.16 |
---|---|
[백준] 자바 11653 소인수분해 (0) | 2021.09.15 |
[백준] 자바 2822 점수 계산 (0) | 2021.09.13 |
[백준] 자바 11728 배열 합치기 (0) | 2021.09.10 |
[백준] 자바 1920 수 찾기 (0) | 2021.09.09 |
댓글