1. 문제 상세
https://www.acmicpc.net/problem/1085
2. 문제 접근
좌표 x, y 와 왼쪽 아래 점 0, 0 부터 오른쪽 위 점 w, h 크기의 직사각형이 주어진다.
가장 가까운 거리를 구하기 위해 최솟값을 저장 할 변수를 만들자.
변수에 입력받은 x, y 중 작은 값을 넣는다.
직사각형의 한 점이 0, 0 에서 시작하기 때문에 각 좌표 x, y 중 더 작은 값이 경계선까지의 최소값이 된다.
그리고 입력받은 w 에서 x 를 빼고, h 에서 y 를 빼준다, 뺸 값을 최소값과 비교하여 작을 경우 최소값에 저장하자.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int a, b, w, h, min;
cin >> a >> b >> w >> h;
min = a <= b ? a : b;
min = w - a <= min ? w - a : min;
min = h - b <= min ? h - b : min;
cout << min;
}
정수형 변수 a, b, w, h, min 을 선언한다.
cin 으로 정수(좌표)를 입력받아 각각 a, b, w, h 에 저장한다.
min 에 a 가 b 보다 작거나 같다면 a 를, 아니라면 b 를 저장한다.
min 에 w - a 가 min 보다 작거나 같다면 w - a 를, 아니라면 min 을 저장한다.
min 에 h - b 가 min 보다 작거나 같다면 h - b 를, 아니라면 min 을 저장한다.
cout 으로 min 을 출력한다.
4. 성능 확인
5. 마무리
삼항연산자를 사용해보았다.
삼항연산자 : 조건문 ? a : b 형태이다.
조건문이 참일시 a 를 반환하고, 거짓일시 b 를 반환한다.
'백준 - 단계별로 풀어보기 > 기하: 직사각형과 삼각형' 카테고리의 다른 글
[백준] 5073번 : 삼각형과 세 변 | C++ (0) | 2023.10.20 |
---|---|
[백준] 10101번 : 삼각형 외우기 | C++ (0) | 2023.10.20 |
[백준] 9063번 : 대지 | C++ (0) | 2023.10.20 |
[백준] 15894번 : 수학은 체육과목 입니다 | C++ (0) | 2023.10.20 |
[백준] 3009번 : 네 번째 점 | C++ (0) | 2023.10.20 |