python_algorithm_basic python 백준 solved

[Python/파이썬] 백준 1085번 - 직사각형에서 탈출

Kwangjin Park

Sep 12, 2024 · 1 min read

Follow

문제

한수는 지금 $(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)$를 기준으로 위/아래/왼쪽/오른쪽 변까지의 거리를 구해, min으로 최솟값을 구해주면 우리가 원하는 답을 얻을 수 있다.
    • 아래 변까지의 거리: y
    • 위쪽 변까지의 거리: x
    • 왼쪽 변까지의 거리: min_w = w-x
    • 오른쪽 변까지의 거리: min_h = h-y

코드

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

min_w = w - x
min_h = h - y

min_distance = min(min_w, min_h, x, y)
print(min_distance)



chat_bubble 0

chat_bubble 댓글남기기

댓글남기기