반응형
백준 알고리즘 - 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을 추출해주면 됩니다.
반응형
'Programming > Algorithm' 카테고리의 다른 글
백준 알고리즘 - 1110번 : 더하기 사이클 (0) | 2016.04.19 |
---|---|
백준 알고리즘 - 1100번 : 하얀 칸 (0) | 2016.04.19 |
백준 알고리즘 - 1057번 : 토너먼트 (0) | 2016.04.19 |
백준 알고리즘 - 1037번 : 약수 (1) | 2016.04.18 |
백준 알고리즘 - 1026번 : 보물 (0) | 2016.04.18 |
WRITTEN BY
,