본문 바로가기
IT/알고리즘

[BAEKJOON] 백준 1085번: 직사각형에서 탈출 (Python)

by 무녈 2021. 9. 13.

문제 링크: https://www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net


문제

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

입력

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

출력

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


코드

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

문제 설명

왼쪽 아래 꼭짓점을 (0, 0) 좌표라 할 때, 오른쪽 위 꼭짓점을 (w, h) 좌표에 위치한 직사각형이 존재한다.

이때 직사각형 내 임의의 점 (x, y) 좌표에서 직사각형의 모서리(경계면)까지의 거리 중 최단거리를 구하는 문제이다.

코드 설명

  1. (x, y) 좌표를 직사각형 내에서 임의의로 지정했을 떄, 경계면까지의 거리를 나타낸 그림이다.
  2. 각각의 길이는 위의 그림과 같다
    • 왼쪽 아래 꼭지점이 (0, 0) 이기 때문에 y축에서 (x, y)의 거리는 x
    • x축에서 (x, y)의 거리는 y
    • 오른쪽 위 꼭짓점 (w, h)의 x축과 평행한 경계면 까지의 거리는 h-y
    • (w, h)의 y축과 평행한 경계면 까지의 거리는 w-x
  3. 각각의 길이를 구하고, min함수를 통해 최소값을 구하여 출력한다.
반응형

댓글