Sunny's Coding Diary

자바[JAVA] - 백준 2751번 수 정렬하기 본문

JAVA

자바[JAVA] - 백준 2751번 수 정렬하기

Sunny._. 2023. 2. 26. 21:02

이번에 풀어본 문제는 백준 2751번 수 정렬하기 문제이다.

 

문제는 다음과 같다.

[문제]

 

N개의 수가 주어졌을때 오름차순으로 정렬하는 문제이다.

문제는 간단하지만 갯수의 범위가 넓어서 자칫하면 시간초과가 나올 수 있는 문제이다.

 

소스코드는 다음과 같다.

 

[소스코드]

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

public class M2750 {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int n = Integer.parseInt(bf.readLine());
        int[] num = new int[n];

        for(int i = 0;i < n;i++) {
            num[i] = Integer.parseInt(bf.readLine());
        }

        Arrays.sort(num);

        for(int i = 0;i < n;i++)    sb.append(num[i]).append("\n");
        System.out.print(sb);
    }
}

[해석]

1. 수의 개수를 입력받는다. 개수만큼 배열을 설정해준다.

 

2. 개수만큼 수를 입력받아 num배열에 넣어준다.

 

3. 정렬 메서드인 Arrays.sort를 사용하여 배열을 오름차순으로 만들어준다.

 

4. StringBuilder의 객체 sb를 만들어 정렬했던 수들을 append 함수를 사용하여 연결해준다.

 

5. sb객체를 출력해준다.

 

[해결]

문제의 난이도는 어렵지 않지만 시간초과로 애를 먹을수 있는 문제이다. 위 방법말고 Arrays.sort로 정렬한 뒤 바로 출력했더니 시간초과가 나와서 StringBuilder를 이용하니 문제를 풀 수 있었다.

 

[꿈은 크게 가져라, 부서져도 그 조각이 크게]

Comments