[백준] 1085번 직사각형에서 탈출 C++ 문제 풀이 수학 2
2020. 2. 25. 18:19ㆍ알고리즘/백준
728x90
반응형
문제
한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
예제 입력 1
6 2 10 3
예제 출력 1
1
문제 풀이
#include <iostream>
using namespace std;
int main() {
int x, y, w, h;
cin>>x>>y>>w>>h;
w -= x;h -= y;
x = x>=w?w:x;
y = y>=h?h:y;
cout<<(x>=y?y:x);
}
직사각형의 경계선까지 가는 거리는 총 4개가 나오는데
1. x에서 0까지의 거리 = x
2. y에서 0까지의 거리 = y
3. x에서 w까지의 거리 = w-x
4. y에서 h까지의 거리 = h-y
이렇게 나타낼 수 있습니다.
4개 중 가장 가까운 거리를 출력해야 하므로 토너먼트 식으로 비교한 다음 출력하였습니다.
출처 : https://www.acmicpc.net/problem/1085
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 4153번 직각삼각형 C++ 문제 풀이 수학 2 (0) | 2020.02.28 |
---|---|
[백준] 3009번 네 번째 점 C++ 문제 풀이 수학 2 (0) | 2020.02.26 |
[백준] 9020번 골드바흐의 추측 C++ 문제 풀이 수학 2 (0) | 2020.02.24 |
[백준] 4948번 베르트랑 공준 C++ 문제 풀이 수학 2 (0) | 2020.02.19 |
[백준] 1929번 소수 구하기 C++ 문제 풀이 수학 2 (0) | 2020.02.18 |