백준 1085번

신형석·2022년 3월 23일
0

알고리즘 풀이

목록 보기
24/41

백준 1085번은 간단한 문제이다. 시작점은 무조건 직사각형 안에 있고, 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)이다. 또한, 점과 선 사이의 최단거리는 점을 지나면서, 선에 수직인 선의 길이이다. 이러한 점을 이용하여 우리는 4개의 거리를 구할 수 있다.

  1. 현재의 위치 (x, y)에서 x축까지의 거리 = y
  2. 현재의 위치 (x, y)에서 y축까지의 거리 = x
  3. 현재의 위치 (x, y)에서 x축이 아닌 직사각형의 다른 한 변까지의 거리 = h - y
  4. 현재의 위치 (x, y)에서 y축이 아닌 직사각형의 다른 한 변까지의 거리 = w - x

이 4개의 거리 중 가장 짧은 거리를 출력해주면 되는 문제이다.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	int x, y, w, h;
	scanf("%d %d %d %d", &x, &y, &w, &h);
	int array[4] = { x, y, w - x, h - y };
	int min = 1000;
	for (int i = 0; i < 4; i++) {
		if (min > array[i]) {
			min = array[i];
		}
	}
	printf("%d", min);
	return 0;
}

0개의 댓글