알고리즘

백준 1085번 직사각형에서 탈출 C++

영춘권의달인 2021. 10. 15. 15:11
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <math.h>

using namespace std;

int main() {
	int x, y, w, h;
	int min = 1001;
	cin >> x >> y >> w >> h;
    
    //x좌표 비교 (0에서 x까지의 거리와 w에서 x까지의 거리)
	if (x > w - x) {
		if (w - x < min) {
			min = w - x;
		}
	}
	else {
		if (x < min) {
			min = x;
		}
	}

    //y좌표 비교(0에서 y까지의 거리와 h에서 y까지의 거리)
	if (y > h - y) {
		if (h - y < min) {
			min = h - y;
		}
	}
	else {
		if (y < min) {
			min = y;
		}
	}
    
    //네 개의 변 중 x,y좌표와 가장 거리가 가까운 변 까지의 거리
	cout << min;
}

0에서 x좌표, w에서 x좌표, 0에서 y좌표, h에서 y좌표 까지의 거리를 모두 비교해서 가장 작은 값을 구하는 간단한 수학 문제이다.