엄지월드

백준 5648 역원소 정렬 본문

알고리즘

백준 5648 역원소 정렬

킨글 2024. 7. 30. 22:55

설명

1. 먼저, 첫줄에 얼마나 문자가 있을지 문제에서 나와있지 않아서 st.countTokens()를 통해서 갯수를 구함.

2. 첫줄만큼 for문을 돈다.

3. for문을 돌면서 입력 받은 문자를 reverse()해서 바로 list에 넣는다. 

3. 두번째 줄부터 while문을 통해서 n이 충족될 때까지 입력 받고, reverse()해서 바로 list에 넣는다.

4. list를 정렬해서 출력한다. 

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;

public class Main {

    // 5648
    public static void main(String[] args) throws IOException {
        process();
    }

    private static void process() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = -1;
        int loopCnt = 0;
        List<Long> list = new ArrayList<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        int startIdx = st.countTokens();

        // 첫줄에 입력 받을 때에 얼마나 원소가 있을지 몰라서 st.countTokens() 만큼 돌음
        for (int i = 0; i < startIdx; i++) {
            if(i == 0) {
                n = Integer.parseInt(st.nextToken());
            } else {
                String reverse = new StringBuilder(st.nextToken()).reverse().toString();
                list.add(Long.parseLong(reverse));
                loopCnt++;
            }
        }

        // 이후에 n이 충족될 때까지 계속해서 입력 받음
        while (loopCnt != n) {

            st = new StringTokenizer(br.readLine());
            while (st.hasMoreElements()) {
                String reverse = new StringBuilder(st.nextToken()).reverse().toString();
                list.add(Long.parseLong(reverse));
                loopCnt++;
            }
        }

        // 정렬 후 출력
        Collections.sort(list);
        for (Long item : list) {
            bw.write(item + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

 

'알고리즘' 카테고리의 다른 글

백준 14729 칠무해  (0) 2024.08.03
백준 1817 짐 챙기는 숌  (0) 2024.07.31
백준 6550 부분 문자열  (0) 2024.07.29
백준 16212 정열적인 정렬  (0) 2024.07.24
백준 14912 숫자 빈도수  (2) 2024.07.23
Comments