Algorithm
백준 2751(JAVA) - 수 정렬하기2
Hyeon Lee
2022. 11. 22. 16:08
728x90
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
백준 2751 수 정렬하기 2 문제이다.
이 문제는 순수하게 그냥 나열해두고 sorting만 해주면 끝나는 문제이다.
처음에는 Arrays.sort()로 실시했는데 시간초과가 나서 Collections.sort()로 실시했다. 사실 그래도 시간초과가 났다. 이해가 잘 안되어서 고민을 했는데 StringBuilder로 해보니까 바로 정답을 맞출 수 있었다.
package selftest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main_2751 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i<N; i++) {
int num = Integer.parseInt(br.readLine());
list.add(num);
}
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for(int i = 0; i<list.size(); i++) {
sb.append(list.get(i)).append('\n');
}
System.out.println(sb.toString());
}
}
이렇게 ArrayList 안에서 add로 num을 입력받고 Collections.sort()로 sorting하고 StringBuilder로 append 시켜줄 때 list의 size만큼 get()으로 받아와서 개행해서 뽑아주면 된다.
여러가지 Framework를 써서 문제를 풀었지만 아마도 배열 Arrays.sort()에다 StringBuilder를 취해주었으면 정답이 나오지 않았을까 한다.
728x90