글 작성자: 취업중인 피터팬
728x90

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

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램

www.acmicpc.net

 

문제 설명

 

사각형 안에 있는 좌표에서 사각형의 변까지 최단 거리를 구하는 문제입니다.

 

문제 풀이

 

문제만 잘 이해하셨다면 직관적으로 어떻게 풀어야 하는지 알 수 있습니다. 사각형이 있다고 가정하면 변으로 가는 방법이 총 4가지가 있습니다. 위쪽 변, 아래쪽 변(Y축), 왼쪽변(X축), 오른쪽 변 이 4가지 길 중에 최단 거리를 찾으면 해결할 수 있는 문제입니다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int x = sc.nextInt();
        int y = sc.nextInt();
        int w = sc.nextInt();
        int h = sc.nextInt();

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

        int result = way[0];

        for(int i=0; i<way.length; i++){
            if(result > way[i]){
                result = way[i];
            }
        }
        System.out.println(result);



    }
}

어렵지 않으니 따로 설명을 하지는 않도록 하겠습니다.