본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 1085번: 직사각형에서 탈출 -C++

728x90

[백준알고리즘] 1085번: 직사각형에서 탈출 -C++

1085번: 직사각형에서 탈출 (acmicpc.net)

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

 현재 위치에서 모든 네 면까지의 거리를 모두 벡터에 넣는다.

 

그리고 모든 거리 중에 가장 작은 값의 거리를 출력한다.

 

그래서 <algorithm> 헤더의 min_element를 사용해서 최소 값을 출력한다.

 

min_elementmax_elementiterator를 반환하기 때문에 앞에 *를 붙여줌으로써 해당 값을 읽는다.

 

쉬운 문제였다. :)

#include <iostream>
#include <vector>
#include <algorithm>

void solve(void);

int main(void)
{
	solve();
}

void solve(void)
{
	int x, y, w, h;
	std::cin >> x >> y >> w >> h;

	std::vector<int> distance;
	distance.push_back(x); // left
	distance.push_back(w - x); // right
	distance.push_back(h - y); // up
	distance.push_back(y); // down

	int min_dist = *std::min_element(distance.begin(), distance.end());
	std::cout << min_dist;
}

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90