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

+ Recent posts