Algorithm/정렬(Sort)

[백준 10867번] 중복 빼고 정렬하기(Java 풀이)

agility 2020. 2. 22. 12:12

백준알고리즘 10867번 : 중복 빼고 정렬하기

 

중복을 포함한 숫자를 Testcase만큼 찍어내고, 이 중에서 중복한 수는 빼고 정렬하는 문제이다.

받아올 수 있는 줄의 갯수는 최대 10만개인 반면, 수는 절댓값이 1000보다 작거나 같은 정수이기 때문에

받으면서 중복이 있으면 그때 그때 걸러주는 게 낫겠다고 생각했다.

(다 받고 정렬 후 거르는것과 비교를 해봐야겠지만)

 

 

 

풀이 과정


1. ArrayList를 만들어놓고, Scanner로 값을 담도록한다.
2. 단, 담는 조건을 첨가한다.
   A. ArrayList에 있는 모든 값들을 불러와, 하나라도 동일한 값이 있으면
       다음 숫자를 받는다.
   B. A조건에 걸리지 않은 경우, 숫자를 List에 추가한다.
3. 조건으로 걸러진 List를 정렬한 뒤, 출력한다.

 

 

소스 ▽

더보기
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) { // 10867번 중복 빼고 정렬하기
	
		Scanner sc = new Scanner(System.in);
		int count= sc.nextInt();
		
		ArrayList<Integer> arr = new ArrayList<Integer>();
		arr.add(sc.nextInt());
		for (int i = 0; i < count-1; i++) {
			int num = sc.nextInt();
			for (int j = 0; j < arr.size(); j++) {
				if (arr.get(j)==num) {
					break;
				}
				if (j==arr.size()-1) {
					arr.add(num);
					break;
				}
			}
		}
		
		arr.sort(Comparator.naturalOrder());
		for (Integer integer : arr) {
			System.out.print(integer+" ");
		}
		
	}

}