Python으로 구현한 1085번 직사각형에서 탈출 문제 풀이입니다.
https://www.acmicpc.net/problem/1085
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 또한 같은 방식이며, 최종적으로 문제에서 요구하는 거리의 최솟값을 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 2581번 소수 풀이 (0) | 2021.10.06 |
---|---|
백준(Python) 2609번 최대공약수와 최소공배수 풀이 (0) | 2021.10.06 |
백준(Python) 1929번 소수 구하기 풀이 (0) | 2021.10.06 |
백준(Python) 10250번 ACM 호텔 풀이 (0) | 2021.10.06 |
백준(Python) 10870번 피보나치 수 5 (0) | 2021.10.06 |