백준 - 직사각형에서 탈출 [1085]

노력하는 배짱이·2021년 3월 23일
0
post-thumbnail

문제

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

입력

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

출력

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

제한

1 ≤ w, h ≤ 1,000
1 ≤ x ≤ w-1
1 ≤ y ≤ h-1
x, y, w, h는 정수

풀이

주어진 좌표(x,y)에서 직사각형의 경계(모서리)까지의 최소 거리를 구하면 되는 문제이다. 그러면 4개의 모서리와의 거리를 구해서 제일 작은 것을 출력하면 되는데, 4개의 모서리와의 거리는 x, y , w-x , h-y 이렇게 나온다. 그림을 그려보면 이해할 수 있다. 따라서 이 4개중 제일 작은 것을 출력하면 된다.

소스

import java.util.*;

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 minX = Math.min(x, w - x);
		int minY = Math.min(y, h - y);

		System.out.println(Math.min(minX, minY));

	}

}

0개의 댓글