백준 ABC

KIMYEONGJUN·2025년 3월 16일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 세 수 A, B, C가 주어진다.
하지만, 순서는 A, B, C가 아닐 수도 있다.
세 수는 100보다 작거나 같은 자연수이다.
둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면 된다.

주어진 세 수를 주어진 출력 순서대로 출력하면 된다.

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 입력을 받는다.
정렬: 입력된 세 수를 배열에 저장한 후, Arrays.sort()를 사용하여 정렬한다.
출력 순서에 맞게 출력: 주어진 순서에 따라 정렬된 수를 StringBuilder에 추가한다.
결과 출력: 최종 결과를 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 3047번 문제
public class Main962 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 세 수 입력
        String[] inputNumbers = br.readLine().split(" ");
        int[] numbers = new int[3];
        for(int i = 0; i < 3; i++) {
            numbers[i] = Integer.parseInt(inputNumbers[i]);
        }

        // 순서 입력
        String order = br.readLine();

        // 정렬
        Arrays.sort(numbers);

        // 출력 순서에 맞춰 결과 출력
        for(char ch : order.toCharArray()) {
            switch(ch) {
                case 'A':
                    sb.append(numbers[0]).append(" ");
                    break;
                case 'B':
                    sb.append(numbers[1]).append(" ");
                    break;
                case 'C':
                    sb.append(numbers[2]).append(" ");
                    break;
            }
        }

        // 결과 출력
        System.out.println(sb.toString().trim());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글