본문 바로가기
코딩테스트 준비/백준

[백준] 10867번 - 중복 빼고 정렬하기 [Java]

by mwzz6 2024. 12. 23.

https://www.acmicpc.net/problem/10867

 

[백준] 10867번 - 중복 빼고 정렬하기 [Java]


1.  아이디어

 

수의 범위가 주어져 있고 범위가 크지 않기 때문에 boolean 타입 배열로 방문 체크를 해서 구현했다.


2. 문제풀이

 

방문 체크 배열에서 수가 음수인 경우를 고려해서 인덱스를 배정하면 간단하게 해결할 수 있다.


3. 코드

 

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

public class Main {

    private static final int MAX = 1000;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;

        int N = Integer.parseInt(br.readLine());

        boolean[] visited = new boolean[MAX + 1 + MAX];
        st = new StringTokenizer(br.readLine());
        while (st.hasMoreTokens()) {
            visited[MAX + Integer.parseInt(st.nextToken())] = true;
        }

        for (int i = 0; i < visited.length; i++) {
            if (visited[i]) sb.append(i - MAX).append(" ");
        }

        bw.write(sb.toString());
        bw.flush();
    }
}

4. 후기