백준 알고리즘 - 1085번 직사각형에서 탈출 문제입니다.

(참고 - https://www.acmicpc.net/problem/1085 )


코드 )

#include <stdio.h>

int main() {

int x, y, w, h, i, min;

int arr[4];

scanf("%d %d %d %d", &x, &y, &w, &h);

arr[0] = x;

arr[1] = w-x;

arr[2] = y;

arr[3] = h-y;

for(i=0; i<3; i++) {

if(arr[i] <= arr[i+1]) {

min = arr[i];

arr[i+1] = min;

}

else

min = arr[i+1];

}

printf("%d\n", min);

return 0;

}


- 단순한 문제입니다. 배열 arr에 크기 4를 지정하여 인덱스 0~3까지 (0,0)으로부터 상대적으로 떨어진 위치의 x와 y좌표, (오른쪽위 꼭지점-x, y) 각각의 값을 넣어줍니다.

즉 직사각형의 경계선까지의 최소 거리를 구하는 문제이므로 이 4가지의 값들 중 최소값만 구해주면 되는 것입니다.

직사각형이라는 도형에 대해 생각해보게 되는 문제로, 대각선의 경우에는 무조건 직선거리에 비해 최소값이 나올 수 없는 도형이기 때문에 대각선은 생각해 볼 필요도 없는 문제입니다.

그 후, 배열값을 비교해가며 최소값 min을 추출해주면 됩니다.


WRITTEN BY
SiriusJ

,