본문 바로가기
👩🏻‍💻 Front-end/👾 Algorithm

백준 1085 - 직사각형에서 탈출 (Python)

by su-no 2022. 4. 18.

문제

한수는 지금 (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, w, h = map(int, input().split())

min = 1000

if x < min:
    min = x
if y < min:
    min = y
if (w-x) < min:
    min = w-x
if (h-y) < min:
    min = h-y

print(min)

 

현재 위치로부터 각 직사각형의 변에 이르는 최솟값을 구하는 문제.

  • 왼쪽 변까지의 거리: x-0
  • 오른쪽 변까지의 거리: w-x
  • 위쪽 변까지의 거리: h-y
  • 아래쪽 변까지의 거리: y-0

네가지 경우 중 최소값을 구하면 된다.

 

min 내장함수를 몰라서 if문으로 최소값 구하는 과정을 구현했는데

그냥 간단히 아래와 같이 min 함수를 사용해서 값을 구할 수 있다.

 

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