[APS] 백준 2752 : 세 수 정렬

u_yonu·2026년 2월 4일

APS

목록 보기
1/9
post-thumbnail

개요

문제 : 백준 2752. 세수정렬
백준 2752. 세수정렬

[문제 분석]

동규는 세수를 하다가 정렬이 하고 싶어졌다.

정수 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어졌다.

정수 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.

[입력]

정수 세 개가 주어진다. 이 수는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 수는 모두 다르다.

[출력]

제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.

[풀이 전략]

처음 생각했을 때, 생각했던 로직은 다음과 같다
(1) 정수 3개를 배열로 받는다.
(2) 배열을 반복문을 통해 비교한다.
(3) 조건문을 통해서 실질적으로 순서 할당

[구현코드]


import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    int[] arr= new int[3];
    Scanner sc = new Scanner(System.in);
    arr[0] = sc.nextInt();
    arr[1] = sc.nextInt();
    arr[2] = sc.nextInt();
    for (int i=0; i<3; i++)
        for(int j=0; j<2 ; j++)
            if(arr[j] > arr[j+1]) {
                int temp = 0; 
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp; 
                }

    System.out.print(arr[0]+" ");
    System.out.print(arr[1]+" ");
    System.out.print(arr[2]+" ");

}

}

[개선사항]

  1. Arrays.sort 함수 사용
 for (int i=0; i<3; i++)
        for(int j=0; j<2 ; j++)
            if(arr[j] > arr[j+1]) {
                int temp = 0; 
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp; 
                }

위에 구현한 코드는 이렇게 아래와 같이 작성할 수 있음

Arrays.sort(arr);
  1. 최적화
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        /* 풀이 접근 방법
        배열을 만든 후 해당 배열 안에 입력값들을 받은 후
        Arrays.sort()를 이용해서 오름차순으로 정렬 뒤 차례대로 출력
         */

        //입력 받은 값 만큼의 배열을 만든 후 배열 크기 설정 
        int[] arr = new int[3];

        //반복문을 통해 arr의 크기 만큼 입력값 받기
        //보통 배열을 이용할 때 초기식의 초기값은 0으로 시작하는 게 좋음
        for(int i = 0; i<arr.length; i++) {

            //arr.length의 크기는 3번이니 총 3번의 값을 받음
            arr[i] = sc.nextInt();
        }

        //arr을 오름차순으로 배열
        Arrays.sort(arr);

        //차례대로 출력
        for(int i : arr) {
            System.out.printf("%d ", i);
        }

    }
} 

오늘도 맛있는 모닝야미 끝

profile
비전공자의 개발도전기

0개의 댓글