문제
한수는 지금 (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는 정수
x, y, w, h = map(int, input().split())
min = 1000
if x < min:
min = x
if y < min:
min = y
if (w-x) < min:
min = w-x
if (h-y) < min:
min = h-y
print(min)
현재 위치로부터 각 직사각형의 변에 이르는 최솟값을 구하는 문제.
- 왼쪽 변까지의 거리: x-0
- 오른쪽 변까지의 거리: w-x
- 위쪽 변까지의 거리: h-y
- 아래쪽 변까지의 거리: y-0
네가지 경우 중 최소값을 구하면 된다.
min 내장함수를 몰라서 if문으로 최소값 구하는 과정을 구현했는데
그냥 간단히 아래와 같이 min 함수를 사용해서 값을 구할 수 있다.
x, y, w, h = map(int, input().split())
print(min(x, y, w-x, h-y))
'👩🏻💻 Front-end > 👾 Algorithm' 카테고리의 다른 글
백준 1032 - 명령 프롬프트 (Python) (0) | 2022.04.23 |
---|---|
백준 1598 - 꼬리를 무는 숫자 나열 (직각거리 구하기) (Python) (0) | 2022.04.20 |
백준 1267 - 핸드폰 최소 요금제 구하기 (Python) (0) | 2022.04.20 |
백준 1212 - N개의 정수의 합 S의 부호 구하기 (Python) (0) | 2022.04.20 |
백준 1212 - 8진수를 2진수로 변환 (Python) (0) | 2022.04.19 |