문제
한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 x, y, w, h가 주어진다.
출력
첫째 줄에 문제의 정답을 출력한다.
풀이 과정
경계선까지 가는 최소 거리는 다음 4가지를 비교해야 한다.
가로 기준으로, x 에서 0까지 가는게 빠른지 x 에서 w 까지 가는게 빠른지
세로 기준으로, y 에서 0까지 가는게 빠른지 y 에서 h 까지 가는게 빠른지
이 중 최솟값을 출력한다.
C
#include <stdio.h>
int main(void) {
int x, y, w, h;
scanf("%d %d %d %d", &x, &y, &w, &h);
int min = x;
if (min > w-x) min = w-x;
if (min > y) min = y;
if (min > h-y) min = h-y;
printf("%d", min);
return 0;
}
Python
x, y, w, h = map(int, input().split())
print(min([x,y,w-x,h-y]))
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 17263 : Sort 마스터 배지훈 ( BRONZE 3 ) / C, Python (0) | 2023.10.03 |
---|---|
[ BOJ ] 29807 : 학번을 찾아줘! ( BRONZE 4 ) / C, Python (0) | 2023.10.02 |
[ BOJ ] 19944 : 뉴비의 기준은 뭘까? ( BRONZE 4 ) / C, Python (0) | 2023.10.02 |
[ BOJ ] 28097 : 모범생 포닉스 ( BRONZE 4 ) / C, Python (0) | 2023.10.02 |
[ BOJ ] 2491 : 수열 ( SILVER 4 ) / Python (0) | 2023.09.30 |