PS (C, C++)

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

최연재 2022. 8. 22. 00:20

https://www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

코드

#include <stdio.h>

int main()
{
	int x, y, w, h, xlen, ylen;
	scanf("%d %d %d %d", &x, &y, &w, &h);
	xlen = x;
	ylen = y;
	if (w - x < x) xlen = w - x;
	if (h - y < y) ylen = h - y;

	if (xlen > ylen) printf("%d", ylen);
	else printf("%d", xlen);
	return 0;
}

코드 설명

x, y와 w, h를 입력받는다. xlen와 ylen을 각각 x와 y로 초기화한다. 아래 그림에서 최소의 길이를 찾기 위해 먼저 x와 w-x, y와 h-y의 길이를 비교해 더 작은 값을 xlen, ylen에 저장한다. 마지막으로 xlen, ylen을 비교해서 더 작은 값을 출력한다. 

느낀 점

그림을 그려서 문제를 한 번에 파악하니 금방 풀 수 있었다. 

'PS (C, C++)' 카테고리의 다른 글

[백준/C] 1547 공  (0) 2022.08.22
[백준/C] 1076 저항  (0) 2022.08.22
[백준/C] 1598 꼬리를 무는 숫자 나열  (0) 2022.08.22
[백준/C] 1159 농구 경기  (0) 2022.08.21
[백준/C] 1032 명령 프롬프트  (0) 2022.08.20