백준(Python) 풀이/수학

백준(Python) 1085번 직사각형에서 탈출 풀이

개발윗미 2021. 10. 6. 13:11

Python으로 구현한 1085번 직사각형에서 탈출 문제 풀이입니다.

 

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

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net


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

if x > w :
  x = w
if y > h :
  y = h

if x > y :
  print(y)
else :
  print(x)

 

이 문제는 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 문제로, 직사각형의 네변 중 현재의 위치에서 움직일 때

 

가장 짧은 거리를 출력하면 된다. 그렇기 때문에 네가지의 경우를 비교하여 정답을 도출할 수 있도록 해야 한다.

 

직사각형에서 탈출 문제 풀이

 

위 코드를 그림과 함께 볼 때, 변수 w는 2번 쪽으로 가는 거리이고, h는 1번 쪽으로 가는 거리이다.

 

또한, 조건문을 통해 변수 x가 변수 w보다 크다면 변수 w의 값으로 할당해준다. 즉, x는 4번 쪽으로 가는 거리인데

 

2번 쪽으로 가는 거리가 더 짧다면 그 거리값으로 할당해주는 방식이다.

 

변수 y 또한 같은 방식이며, 최종적으로 문제에서 요구하는 거리의 최솟값을 출력한다.