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
'코딩테스트 > Beakjoon' 카테고리의 다른 글
| 백준 1110번 : 더하기 사이클 [Python] (2) | 2023.11.18 |
|---|---|
| 백준 1152번 : 단어의 개수 [C++] (0) | 2023.10.09 |
| 백준 1065번 : 한수 [Python] (2) | 2023.10.09 |
| 백준 1018번 : 체스판 다시 칠하기 [Python] (2) | 2023.10.08 |
| 백준 1008번 : A/B [JAVA] (0) | 2023.10.08 |