본문 바로가기
문제 풀이/백준(BOJ)

[C] 백준 1085번 : 직사각형에서 탈출

by 희조당 2021. 3. 19.
728x90

www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.

www.acmicpc.net


문제 접근

 1. 4가지 경우(왼쪽, 오른쪽, 위, 아래 경계선)을 나누고 그 중 최소값을 출력

느낀점

생각보다 너무 쉬워서 당황한 문제. 사실 대각선도 따져야하나 했지만 생각해보니 직선 거리가 최소일 수 밖에 없음!

코드

#define _CRT_NO_SECRUE_WARNING_
#include <stdio.h>
#define min(x,y) x>y ? y : x

int main() {
	int x, y, w, h;
	scanf("%d %d %d %d", &x, &y, &w, &h);
	int min1 = 0, min2 = 0;
	if ((x < w) && (y < h)) {
		min1 = min(w - x, x);
		min2 = min(h - y, y);
		printf("%d", min(min1, min2));
	}

	return 0;
}

1

댓글