본문 바로가기

[C언어] 백준온라인/* 수학 2

[C 언어] 백준 1085. 직사각형에서 탈출


1085. 직사각형에서 탈출 (누르면 해당 문제로 이동)

직사각형과 점의 거리를 구하는 문제

 

제약사항)

시간 : 2 초

메모리 : 128 MB

 

문제)

한수는 지금 (x, y)에 있다.

직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다.

직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.

 

입력)

첫째 줄에 x y w h가 주어진다.

w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고,

y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.

 

출력)

첫째 줄에 문제의 정답을 출력한다.

 

입출력 예제

입력 출력
6 2 10 3 1

 


 

풀이 순서)

1. 입력 조건에 따르면 (x, y)는 사각형 내부에 있음을 알 수 있습니다.

2. (x, y) 에서 상하좌우 거리를 확인해 최솟값을 찾으면 됩니다.

 


 

소스코드 및 결과 (C)

#include <stdio.h>

int minFinder(int *arr, int size) {
	int i, minV = arr[0];

	for (i = 0; i < size; i++)
		if (arr[i] < minV)
			minV = arr[i];

	return minV;
}

int main() {
	int w, h;
	int array[4];

	scanf("%d %d %d %d", &array[0], &array[1], &w, &h);
	
	array[2] = w - array[0];
	array[3] = h - array[1];

	printf("%d\n", minFinder(array, 4));

	return 0;
}

 

메모리 : 1112 KB

시간 : 0 ms

코드길이 : 364 B