https://www.acmicpc.net/problem/1085
직사각형에서, 현재 위치 x,y가 주어지고, 우측 상단 꼭짓점의 좌표 w,h가 주어진다.
이때, x,y에서 직사각형의 경계선 까지 가는 최소 거리를 구하면 된다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int x, y;
int w, h;
cin >> x >> y >> w >> h;
int xToW = w-x;
int zeroToX = x - 0;
int yToH = h-y;
int zeroToY = y - 0;
cout << min(xToW, min(zeroToX, min(yToH, zeroToY)));
}
간단하게 4개의 꼭짓점 중 가장 가까운 곳까지의 거리를 구하면 된다.
즉, (0,0), (0,h), (w,0), (w,h) 중, 현재 위치 (x,y) 와 가장 가까운 곳의 좌표까지의 거리를 구하면 되는 것이다.
각 꼭짓점의 좌표는 0, w, h,로 만 이루어져 있기에, 각 위치와의 거리를 구해 최솟값을 출력하면 된다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 15894번 수학은 체육과목 입니다 [C++] (1) | 2023.12.05 |
---|---|
백준 3009번 네 번째 점 [C++] (1) | 2023.12.04 |
백준 11653번 소인수분해 [C++] (0) | 2023.11.27 |
백준 2869번 달팽이는 올라가고 싶다 [C++] (1) | 2023.11.26 |
백준 1193번 분수찾기 [C++] (0) | 2023.11.26 |