본문 바로가기
코딩테스트/Beakjoon

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

by 나스나키 2023. 10. 9.
728x90

 

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가 주어진다.

 
 

출력

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

 

 

 

예시

 

 

코드

import sys

a = list(map(int, sys.stdin.readline().split()))
num1 = []
num2 = []
x = a[0]
y = a[1]
a[0] = 0
a[1] = 0

for i in range(2):
    num1.append(abs(x - a[i*2]))
for i in range(2):
    num2.append(abs(y - a[i*2+1]))

min_x = min(num1)
min_y = min(num2)

if min_x < min_y:
    print(min_x)
elif min_x > min_y:
    print(min_y)
else:
    print(min_x)

 

 

 

코드 해석

  • a라는 변수에 옆의 코드를 사용해서 list 형태로 넣어준다. 
  • x , y 라는 변수에 x,y 값을 넣어주고, 넣어져 있던 값은 0으로 해준다.
  • num1과 num2에 각 각 평행 이동한 값을 넣어준다. 
  • 그중 가장 낮은 값은 각각 min_x, min_y에 넣어준다. 
  • min_x와 min_y의 각각 낮은 값을 출력한다. 

 

728x90