BEAKJOON

백준(1085번 직사각형에서 탈출)풀이 C++

Shin_jisoo 2021. 1. 14. 18:15
728x90

www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

1) 주석 없는 VERSION

#include <iostream>
#include <cmath> 
#include <cstdio>

using namespace std;

int main() {
	int x, y, w, h;
	cin >> x >> y >> w >> h;

	int min = 0;

	int close_w = w - x;
	int close_h = h - y;

	int a;
	int b;
	int answer;

	if (x <= close_w) a = x;
	else a = close_w;

	if (y <= close_h) b = y;
	else b = close_h;

	if (a <= b)answer = a;
	else answer = b;

	cout << answer;
}

 

2) 주석 있는 VERSION

#include <iostream>
#include <cmath> 
#include <cstdio>

using namespace std;

int main() {
	int x, y, w, h;
	cin >> x >> y >> w >> h;

	int min = 0;

	// w 와 x 사이의 거리
	int close_w = w - x;
	// h 와 y 사이의 거리
	int close_h = h - y;

	int a;
	int b;
	int answer;

	// 입력 받은 x 가 0 에 가까운지 h 에 가까운지를 계산
	if (x <= close_w) a = x;
	else a = close_w;

	// 입력 받은 y 가 0 에 가까운지 w 에 가까운지를 계산
	if (y <= close_h) b = y;
	else b = close_h;

	// x, y 각각의 경계면과의 거리를 비교해 최솟값 계산
	if (a <= b)answer = a;
	else answer = b;

	cout << answer;
}