본문 바로가기
코딩테스트 준비/백준

[백준] 5648번 - 역원소 정렬 [Java]

by mwzz6 2025. 1. 4.

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

 

[백준] 5648번 - 역원소 정렬 [Java]
[백준] 5648번 - 역원소 정렬 [Java]


1.  아이디어

 

StringBuilder의 reverse 메서드로 원소를 간단하게 뒤집을 수 있다.


2. 문제풀이

 

입력 값이 int형 범위를 넘을 수 있어서 long 타입 배열로 입력을 받았다.

일단 StringBuilder로 입력 값을 한번에 받아서 StringTokenizer로 파싱해서 사용했고 각 원소를 reverse 메서드로 뒤집은 후 int형으로 형변환하면 뒤집었을 때 앞의 0도 생략되면서 입력을 받을 수 있다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;

        String input;
        while ((input = br.readLine()) != null) {
            sb.append(input).append(" ");
        }
        st = new StringTokenizer(sb.toString());

        int N = Integer.parseInt(st.nextToken());

        long[] arr = new long[N];
        for (int i = 0; i < N; i++) {
            arr[i] = Long.parseLong(new StringBuilder(st.nextToken()).reverse().toString());
        }
        Arrays.sort(arr);

        sb = new StringBuilder();
        for (long n : arr) {
            sb.append(n).append("\n");
        }

        bw.write(sb.toString());
        bw.flush();
    }
}

4. 후기