[백준_10867] 중복 빼고 정렬하기

MyungHwan Kim·2022년 9월 4일

백준

목록 보기
23/39
post-thumbnail

문제

백준 10867번
https://www.acmicpc.net/problem/10867

N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.

첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.

첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.

Code

Java

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());  // 정수의 개수
        // 1000보다 작거나 작은 정수이기에 1000 + 1001만큼의 boolean 배열
        boolean[] arr = new boolean[2001];
        StringBuilder sb = new StringBuilder();

        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            // 받은 숫자를 인덱스를하여 false 부분을 true로 변경
            arr[Integer.parseInt(st.nextToken()) + 1000] = true;
        }

        for (int i = 0; i < 2001; i++) {
            // 배열 중 true인 부분만 sb에 추가
            if (arr[i]) {
                sb.append(i - 1000).append(" ");
            }
        }
        System.out.println(sb);
    }
}
profile
Back-end 개발자가 되기 위한 개발 노트(Java)

0개의 댓글