본문 바로가기

Android ᙏ̤̫͚/차근차근 JAVA

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

 

BOJ2751

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

[문제]

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

 

<단계> 정렬

<알고리즘 분류> 정렬

 

[input]

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

둘째 줄부터 N개의 줄에는 숫자가 주어진다.

이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

[output]

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 


 

 


 

[풀이 방법]

  1. Scanner 이용하여 수의 개수 입력받고, N개의 숫자 입력받아 배열에 저장

  2. Arrays.sort( ) 함수 활용하여 배열 정렬

  3. 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력

      → 시간  초과

  1. BufferedReader와 BufferedWriter 활용하여 수를 입력받고 출력

  2. Scanner와 동일

 


 

시간 초과 코드

 

성공 코드

    - BufferedReader는 String으로 한 줄씩 입력받기 때문에 str 변수에 입력받아 저장한 후, 정수형으로 변환

    - 배열을 Scanner 사용했을 때와 동일하게 Arrays.sort( ) 활용하여 정렬

    - BufferedWriter 활용하여 출력 (문자형만 출력 가능하여, String.valueOf( ) 함수 활용)

    - bw.flush( ) 함수 사용하지 않으면 버퍼에 저장된 내용이 출력되지 않아 꼭 명시해야 함