본문 바로가기

코딩테스트

[백준 2751번] [JAVA] 수 정렬하기 2

728x90

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

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

반복할 횟수 N을 입력받고

두번째줄부터 array에 들어갈 숫자들을 입력받아 오름차순 정렬하여 하나씩 출력해야하는 문제였습니다.

 

처음에 제출한 코드는 시간초과가 떠서 틀렸습니다..

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class num2751 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		int []arr = new int[n];
		for(int i = 0; i < n; i++) {
			arr[i] = Integer.parseInt(br.readLine());
		}
		Arrays.sort(arr);
		for(int j = 0; j < n; j++) {
			System.out.println(arr[j]);
		}
	}

}

 

시간 초과 문제를 해결하기 위해 검색 후 수정, 수정.. 을 반복하였습니다.

다음은 완성된 코드입니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;

public class num2751 {

	public static void main(String[] args) throws IOException {
		// 시간 초과 문제를 해결하기 위해 Scanner 대신 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// StringBuilder를 이용해 출력 시간 단축
		StringBuilder sb = new StringBuilder();
		
		
		// 사이즈가 가변적인 ArrayList 사용
		ArrayList<Integer> arr = new ArrayList<Integer>();
		
		// n 입력받은 후
		Integer n = Integer.parseInt(br.readLine());
		
		// n만큼 반복해서 arr에 숫자 입력받음
		for(int i = 0; i < n; i++) {
			arr.add(Integer.parseInt(br.readLine()));
		}
		// Array.sort()를 쓸 경우 시간복잡도가 크기 때문에 
		// Collections.sort() 사용하여 오름차순 정렬
		Collections.sort(arr);
		// 정렬된 arr를 sb에 한줄씩 가져온 뒤 출력해줌
		for(int j = 0; j < n; j++) {
			sb.append(arr.get(j)).append("\n");
		}
		System.out.println(sb);
	}

}

'코딩테스트' 카테고리의 다른 글

[백준 13164번][JAVA] 행복 유치원  (2) 2023.07.19
[백준 10828번] [JAVA] 스택  (1) 2023.07.17
[백준 1076번] [JAVA] 저항  (0) 2023.07.09
[백준 2164번] [JAVA] 카드 2  (0) 2023.07.07
[백준 1049번] [JAVA] 기타줄  (0) 2023.07.06