https://www.acmicpc.net/problem/1085
직사각형의 경계셔선까지 최소거리를 구하면 되는 문제이다. 이떄, 원점에서 시작되는 직선이 가까운지 아니라면 (w,h)
에서 시작되는 직선이 가까운지 구하면 된다.
정답코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int x, y, w, h;
cin >> x >> y >> w >> h;
// 각각의 경계선까지의 거리
int distance_to_left = x; // (x, y)에서 왼쪽 경계선 (0, y)까지의 거리
int distance_to_right = w - x; // (x, y)에서 오른쪽 경계선 (w, y)까지의 거리
int distance_to_bottom = y; // (x, y)에서 아래쪽 경계선 (x, 0)까지의 거리
int distance_to_top = h - y; // (x, y)에서 위쪽 경계선 (x, h)까지의 거리
// 최솟값 구하기
int min_value = min({ distance_to_left, distance_to_right, distance_to_bottom, distance_to_top });
cout << min_value << endl;
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]9063번. 대지 (0) | 2024.09.09 |
---|---|
[백준][C++]3009번. 네 번째 점 (1) | 2024.09.06 |
[백준][C++]11653번. 소인수분해 (2) | 2024.09.05 |
[백준][C++]2581번. 소수 (0) | 2024.09.04 |
[백준][C++]1978번. 소수 찾기 (0) | 2024.09.03 |