https://www.acmicpc.net/problem/1085
🔎 해결 방법
1. distance 벡터를 선언한 뒤,
x(왼쪽 경계선과의 거리), y(아래쪽 경계선과의 거리), w - x(오른쪽 경계선과의 거리), h - y(위쪽 경계선과의 거리) 를 각각 추가해준다.
이때 주의할 점은 distance 벡터를 선언할 때
vector<int> distance(4) 와 같이 미리 크기를 지정해주면 안된다.
그러면 distance 의 index 0 ~ 3까지는 이미 0이라는 값이 들어가버리기 때문에
내가 x, y, w - x, h - y를 push_back 해주는 순간 인덱스 4 ~ 7에 저장되기 때문!!
2. distance 벡터를 오름차순으로 정렬 -> <algorithm> 헤더 사용
3. 최소 거리를 출력해야 하므로 distance[0] 출력
💡 내 코드(C++)
// [1085] 직사각형에서 탈출
// https://www.acmicpc.net/problem/1085
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
vector<int> distance; //distance(4) 라고 하면 안됨(0, 0, 0, 0, x, y, w-x, h-y 꼴이 되기 때문)
int x, y, w, h;
cin >> x >> y >> w >> h;
distance.push_back(x);
distance.push_back(y);
distance.push_back(w - x);
distance.push_back(h - y);
sort(distance.begin(), distance.end());
cout << distance[0];
}
반응형
'Baekjoon > 수학' 카테고리의 다른 글
[1193] 분수찾기 (0) | 2020.02.29 |
---|---|
[1475] 방 번호 (0) | 2020.02.09 |
[2839] 설탕 배달 (0) | 2020.02.08 |
[2609] 최대공약수와 최소공배수(C) (0) | 2020.02.06 |
[1110] 더하기 사이클 (0) | 2019.09.15 |