[백준] 2751번 - 수 정렬하기 2 (시간 초과)

2025. 1. 12. 14:28·PS

 

package 백준.정렬;

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

public class baekjoon_2751 {
    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());
        }

        int temp = 0;

        for (int i = 0; i < N; i++) {
            for (int j = i + 1; j < N; j++) {
                if (arr[i] > arr[j]) {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }

        StringBuilder sb= new StringBuilder();
        for (int i: arr){
            sb.append(arr[i-1]);
        }
        System.out.println(sb);
    }
}

 

이중 for문으로 직접 정렬하거나, Arrays.sort()를 사용하면 시간초과가 발생한다. 

 

또한 for 문을 이용해 하나하나 System.out.println() 을 통해 출력하는 것 보다, StringBuilder 객체를 호출하여 출력하는것이 속도가 빠르고 부하가 적다.

 

 

package 백준.정렬;

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 baekjoon_2751 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        List<Integer> list= new ArrayList<>();

        for (int i = 0; i < N; i++) {
            list.add(Integer.parseInt(br.readLine()));
        }

        Collections.sort(list);

        StringBuilder sb= new StringBuilder();
        for (int i: list){
            sb.append(i).append("\n");
        }
        System.out.println(sb);
    }
}

 

리스트로 입력값을 받아서 Collection.sort()를 사용할 경우 시간 초과 문제를 해결할 수 있다.

 

 

'PS' 카테고리의 다른 글

[백준] 11047번 동전 0  (0) 2025.01.30
[백준] 2504번 - 괄호의 값  (1) 2025.01.21
[백준] 16564 - 히오스 프로그래머  (2) 2025.01.11
[프로그래머스] lv2. 가장 큰 수  (1) 2025.01.04
[java/백준] 1764번 듣보잡  (1) 2024.02.26
'PS' 카테고리의 다른 글
  • [백준] 11047번 동전 0
  • [백준] 2504번 - 괄호의 값
  • [백준] 16564 - 히오스 프로그래머
  • [프로그래머스] lv2. 가장 큰 수
zioni
zioni
  • zioni
    jiwon's dev.log
    zioni
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • spring & java (13)
      • Algorithm (14)
      • PS (37)
      • project (3)
      • experience (1)
      • etc (6)
      • study (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    java
    백준
    백준2525
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
zioni
[백준] 2751번 - 수 정렬하기 2 (시간 초과)
상단으로

티스토리툴바