문제
https://www.acmicpc.net/problem/1085
1085번: 직사각형에서 탈출
한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램
www.acmicpc.net
소스코드
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int x,y,w,h;
cin>>x>>y>>w>>h;
int dx=min(w-x,x);
int dy=min(h-y,y);
cout<<min(dx,dy);
return 0;
}
해설
처음에 좌표 범위르 보지않고 x,y 좌표가 직사각형 밖에도 있을거라 생각했는데 문제의 조건에서의 x,y는 직사각형의 틀에서 벗어나지 않는다는 것을 알 수 있다.
그렇다면 x좌표와 y좌표 각각 직사각형 변으로 가는 최소의 거리를 구하면 된다.
'Algorithm > math' 카테고리의 다른 글
[백준] 알고리즘 C++ 2869번 - 달팽이는 올라가고 싶다문제 (0) | 2021.11.04 |
---|---|
[백준] 알고리즘 C++ 2775번 - 부녀회장이 될테야문제 (0) | 2021.10.17 |
[백준] C++ 알고리즘 17425번 - 약수의 합 (0) | 2021.05.27 |
[백준] C++ 알고리즘 17427번 - 약수의 합 2 문제 (0) | 2021.05.25 |
[백준] C++ 알고리즘 1037번 - 약수 문제 (0) | 2021.05.25 |