https://www.acmicpc.net/problem/10867
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class jun_10867 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
Set<Integer> set = new HashSet<>(); // 중복 제거 : 해쉬셋의 특성
for (int i = 0 ; i < n ; i++){
set.add(Integer.parseInt(st.nextToken())); // n번 반복해서 Hashset에 입력해준다.
}
ArrayList<Integer> arry = new ArrayList<>(set);
Collections.sort(arry); // 오름차순 정렬 : Collection클래스의 sort메소드
// arry배열의 출력 포맷 맞추기 : 속도를 향상시키기 위해 StringBuilder사용
StringBuilder sb = new StringBuilder();
for (int i : arry) {
sb.append(i).append(" ");
}
System.out.println(sb.toString());
}
}
public class jun_10867 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
Set<Integer> set = new HashSet<>();
for (int i = 0 ; i < n ; i++){ // O(n)
set.add(Integer.parseInt(st.nextToken()));
}
ArrayList<Integer> arry = new ArrayList<>(set);
Collections.sort(arry); // O(nlogn)을 보장
StringBuilder sb = new StringBuilder();
for (int i : arry) { // O(n)
sb.append(i).append(" ");
}
System.out.println(sb.toString());
}
}
// O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!) < O(nⁿ)
// 시간 복잡도는 O(n log n)
public class jun_10867 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
// set을 저장하기 위한 공간 = n
Set<Integer> set = new HashSet<>();
// i, n을 위한 공간 = n + 2
for (int i = 0 ; i < n ; i++){
set.add(Integer.parseInt(st.nextToken()));
}
// arry를 저장하기 위한 공간 = n
ArrayList<Integer> arry = new ArrayList<>(set);
Collections.sort(arry);
StringBuilder sb = new StringBuilder();
for (int i : arry) {
sb.append(i).append(" ");
}
System.out.println(sb.toString());
}
}
// 3n + 2 = O(n)
// 공간복잡도는 O(n)
시간 복잡도와 공간 복잡도는 공부하면서 스스로 계산해본 것이므로 정답이 아닐 가능성이 있습니다.
Ref