C

[C]백준 09.기본수학2: 1085

열지희공 2022. 1. 15. 20:33

백준 1085

내코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int x, y, w, h;
	scanf("%d %d %d %d", &x, &y, &w, &h);
	int min;
	min = x < y ? x : y;
	min = min < w - x ? min : w - x;
	min = min < h - y ? min : h - y;
	printf("%d", min);
	return 0;
}

현 위치 (x,y)에서 직사각형의 경계값으로 가는 방법은 각 변까지 수직으로 가는 4가지가 있다. (대각선으로 이동하여 꼭짓점으로 이동하는 방법 각 변에 수직으로 이동하는 것보다 거리가 더 크므로 제외했다.) 따라서 이 4가지 방법 중 가장 작은 거리를 갖는 것을 구하면 된다. 각 변까지 가는 거리는 x, w-x, y, h-y 4가지가 가능하므로 4가지 중 최소값을 구하기 위해 삼항연산자를 사용했다.