티스토리 뷰
728x90
문제
- N개의 수가 주어졌을 때, 오름차순으로 정렬
- 절댓값이 1,000,000보다 작거나 같은 N(1<=N<=1,000,000)개의 정수
- 수는 중복되지 않음
해결방법
처음에는 배열에 넣고 Arrays.sort() 메서드를 이용하여 정렬을 하려고 하였으나, 시간초과로 통과하지 못했다. 그래서 LinkedList<Integer>를 만들어 주어진 숫자들을 추가하고 Collections.sort() 메서드를 이용하여 정렬한 뒤, StringBuilder로 한 번에 출력하였다. StringBuilder를 사용하지 않고 출력해도 시간초과가 발생하였다.
코드
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
LinkedList<Integer> nums = new LinkedList<>();
for(int i = 0; i<N; i++){
nums.add(Integer.parseInt(br.readLine())); // 입력 받은 숫자 추가
}
Collections.sort(nums); // 숫자 정렬
for(int i = 0; i<N; i++){
sb.append(nums.poll()).append("\n"); // StringBuilder에 하나씩 출력 추가
}
System.out.println(sb); // 전체 출력
}
}
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2798번 블랙잭(JAVA) (0) | 2022.07.19 |
---|---|
[백준] 2775번 부녀회장이 될테야(JAVA) (0) | 2022.07.19 |
[백준] 2609번 최대공약수와 최소공배수(JAVA) (0) | 2022.07.18 |
[백준] 2292번 벌집(JAVA) (0) | 2022.07.17 |
[백준] 2231번 분해합(JAVA) (0) | 2022.07.17 |
댓글