본문 바로가기
공부 정리/백준

[백준] 자바 10867 중복 빼고 정렬하기

by 경적필패. 2021. 9. 14.
반응형

문제

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

댓글