코딩문제풀이/Baekjoon
[Java] 백준 2751번 : 수 정렬하기 2
코딩하는 포메라니안
2022. 12. 31. 15:16
1. 문제
https://www.acmicpc.net/problem/2751
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
2. 풀이과정
1. 중복된 수가 들어오지 않으므로, 1차원 배열에 값이 있는지 여부를 기록한다.
2. 배열의 index는 절댓값이 1_000_000이하이기 때문에, 음수도 가능하므로 (들어온 값) + 1_000_000으로 하여 값을 true로 바꿔준다.
3. 출력할 때, 배열을 처음부터 끝까지 돌면서 true면 (index값) - 1_000_000하여 결과를 출력한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int su = Integer.parseInt(br.readLine());
boolean arr[] = new boolean[2_000_001];
for(int i=0; i<su; i++){
arr[Integer.parseInt(br.readLine())+1_000_000] = true;
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<=2_000_000; i++){
if(arr[i]){
sb.append(i-1_000_000).append("\n");
}
}
System.out.println(sb);
}
}