(파이썬) 백준 1085. 직사각형에서 탈출

문제

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

입력

첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.

출력

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

구상

좌우로 이동할 때 최단 거리 a와 상하로 이동할 때 최단 거리 b를 구하고 이를 비교한다.

 

$a = min(|x-w|,|x|)$

$b = min(|y-h|,|y|)$

$res = min(a,b)$

 

코드

x, y, w, h = map(int, input().split())

a = min(abs(x-w),abs(x))
b = min(abs(y-h),abs(y))
res = min(a,b)

print(res)