문제
한수는 지금 (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)))
'BOJ 코딩테스트 > Bronze' 카테고리의 다른 글
BOJ 2953번 : 나는 요리사다 (C++/Bronze 3) (0) | 2022.10.06 |
---|---|
BOJ 5597번 : 과제 안 내신 분..? (C++/Bronze 5) (0) | 2022.10.04 |
BOJ 2747번 : 피보나치 수 (C++/Bronze 2) (0) | 2022.09.27 |
BOJ 25305번 : 커트라인 (C++/Bronze 2) (0) | 2022.09.26 |
BOJ 10870번 : 피보나치 수 5 (C++/Bronze 2) (0) | 2022.09.20 |