Stay Hungry Stay Foolish

BOJ 코딩테스트/Bronze

BOJ 1085번 : 직사각형에서 탈출 (C++/Python/Bronze 3)

dev스카이 2022. 9. 29. 12:19
 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

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

입력
첫째 줄에 x, y, w, h가 주어진다.

출력
첫째 줄에 문제의 정답을 출력한다.


예제 입력

6 2 10 3

예제 출력

1

설명

 

풀이

w를 직사각형 너비, h를 직사각형 높이라고 생각하자. 주어진 점 (x, y)에서 가장 가까운 거리를 구해야 하므로, 거리의 최솟값을 구하면 된다. 

c++ 풀이에서는 min함수를 쓰기 위해서 algorithm 헤더파일을 포함시켜야 한다.  파이썬 풀이에서는 기본 내장함수이기 때문에 임포트하지 않고 사용한다.

1. 먼저 너비 최솟값과 높이 최솟값을 구한다.

2. 너비와 높이의 최솟값이 구해졌으니 그 값 중에서 다시 최소를 구해 출력한다.

Solution

c++

#include <iostream>
#include <algorithm>
using namespace std;

int x, y, w, h;

int main() {
    cin >> x >> y >> w >> h;
    cout << min(min(x, w-x), min(y, h-y));
    return 0;
}

Python

x, y, w, h = map(int, input().split())
print(min(min(x, w-x),min(y, h-y)))