PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

CLASS 2

주어진 좌표에서 직사각형 영역 밖으로 나가는 최소 거리를 출력하는 문제입니다. 먼저 직사각형 영역은 4개의 선형 부등식(직선)으로 이루어져있습니다. 따라서 영역을 탈출하려면 4개의 직선 중 하나를 골라 나가야 합니다. 그런데 어떤 점에서 직선까지의 최소 거리는 점에서 직선에 수선의 발을 내렸을 때 수선의 길이입니다. 문제의 직사각형 영역의 직선들은 모두 x축에 평행하거나 y축에 평행하므로 우리가 그릴 수선도 x축에 평행하거나 y축에 평행합니다. 따라서 점과 직선의 좌표(x좌표 또는 y좌표 중 하나) 차이를 구하면 됩니다. 아래처럼 말이죠.

직선이 수평/수직일 때 점과 직선 사이의 거리

문제에서 이 중 최소를 구하라고 했으므로 왼쪽으로 나가는 거리(x), 오른쪽으로 나가는 거리(w-x), 아래로 나가는 거리(y), 위로 나가는 거리(h-y) 중 최소값을 구하여 출력하면 됩니다.

소스 코드

언어 코드 시간
Python 3 코드(Github) / 코드(백준) 2020-03-27 09:38:45