BOJ 1085

2020-02-07

위 문제는 백준 사이트의 알고리즘 1085 문제에 관한 설명입니다.


문제

한수는 지금 (x, y)에 있다.

직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고,

오른쪽 위 꼭짓점은 (w, h)에 있다.

직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 x y w h가 주어진다.

w와 h는 1,000보다 작거나 같은 자연수이고,

x는 1보다 크거나 같고,

w-1보다 작거나 같은 자연수이고,

y는 1보다 크거나 같고,

h-1보다 작거나 같은 자연수이다.

출력

첫째 줄에 문제의 정답을 출력한다.


import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        int y = scanner.nextInt();
        int w = scanner.nextInt();
        int h = scanner.nextInt();

        int array[] = new int[4];
        array[0] = x;
        array[1] = y;
        array[2] = w-x;
        array[3] = h-y;

        Arrays.sort(array);
        System.out.println(array[0]);
    }
}

제가 푼 소스코드입니다.

코드 설명

4개의 값을 받은 후 배열 array에 x의 값, y의 값, w-x(전체 width에서 x의 뺀 값), h-y(전체 height에서 y의 뺀 값)을

저장하고 Arrays를 활용해서 정렬시켰습니다.

정렬된 값들중 array[0]에 가장 작은 값이 들어있기 때문에 이를 출력해줍니다.

간단한 문제!

직사각형에서 탈출