파이썬 알고리즘 109 번 | [백준 1085번] 직사각형에서 탈출

Yunny.Log ·2022년 1월 26일
0

Algorithm

목록 보기
112/318
post-thumbnail

109. 직사각형에서 탈출

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

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

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

제한
1 ≤ w, h ≤ 1,000
1 ≤ x ≤ w-1
1 ≤ y ≤ h-1
x, y, w, h는 정수
예제 입력 1
6 2 10 3
예제 출력 1
1
예제 입력 2
1 1 5 5
예제 출력 2
1
예제 입력 3
653 375 1000 1000

1) 어떤 전략(알고리즘)으로 해결?

  • 경계선에 간다는 것은 내가 서 있는 x좌표가 왼쪽 아래 점의 x좌표나 오른쪽 윗점의 x좌표랑 the same 하거나 y좌표가 왼쪽 아래 점의 y좌표나 오른쪽 윗점의 y좌표랑 똑같아야 한다는 것
  • 이 네가지 경우 중 가장 이동거리가 짧은 (절댓값 씌워주고) 아이가 최소거리이동이다

<내 풀이>


x,y,w,h = map(int,input().split())
a=abs(x)
b=abs(y)
c=abs(w-x)
d=abs(h-y)
min=a

if b<min:
    min=b
if c<min:
    min=c
if d<min:
    min=d
    
print(min)

<반성 점>

  • 경계선에 대한 이해를 처음에 잘못 했던 것

<배운 점>

0개의 댓글