백준

[백준] 1085 : 직사각형에서 탈출 (Python/파이썬)

sson-coding 2025. 10. 16. 12:36

문제 링크

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

문제

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

입력

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

출력

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

예제

입력

6 2 10 3

출력

1

정답 및 풀이

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

x1 = abs(x-w)
y1 = abs(y-h)
x2 = abs(x-0)
y2 = abs(y-0)

print(min(x1,x2,y1,y2))

  1. x,y,w,h = map(int,input().split())
    • (x, y)는 현재 점의 좌표이고, (w, h)는 직사각형의 오른쪽 위 꼭짓점 좌표입니다.
  2. x1 = abs(x - w) y1 = abs(y - h)
    • 점에서 오른쪽 경계선(x = w)과 위쪽 경계선(y = h)까지의 거리를 구합니다.
    • abs()는 절댓값 함수로, 음수가 나오지 않게 하기 위함입니다.
  3. x2 = abs(x - 0) y2 = abs(y - 0)
    • 점에서 왼쪽 경계선(x = 0)과 아래쪽 경계선(y = 0)까지의 거리를 구합니다.
  4. print(min(x1, x2, y1, y2))
    • 4개의 거리 중 가장 짧은 값을 출력합니다.