백준 1085번 문제(직사각형에서 탈출) C++로 풀기

doctorsohn·2021년 2월 7일
0

백준

목록 보기
16/16

1085번 직사각형에서 탈출 링크


문제 요약

한 점에서 직사각형의 경계선까지 가는 거리의 최솟값을 구한다.


코드

#include <iostream>

using namespace std;

int main()
{
  int x,y,w,h;
  scanf("%d %d %d %d",&x,&y,&w,&h); // 입력
  int l1,l2;
  l1=w-x; 
  l2=h-y;  
  int dis1=(l1>x)?x:l1; // 0부터 x까지의 거리와 x부터 w 까지의 거리 중 짧은 값 찾기
  int dis2=(l2>y)?y:l2; // 0부터 y까지의 거리와 y부터 h 까지의 거리 중 짧은 값 찾기
  int dis3=(dis1>dis2)?dis2:dis1; // 위에서 구한 두 값 중 짧은 값 찾기
  printf("%d",dis3);
}

풀이

(0,0)과 (w,h)로 이루어진 직사각형 안의 점 (x,y)에서 직사각형의 경계선까지 가는 거리의 최솟값은

  1. 0부터 x까지의 거리
  2. x부터 w까지의 거리
  3. 0부터 y까지의 거리
  4. y부터 h까지의 거리

중 최솟값을 고르면 된다.


주의점

딱히 없다.

profile
하고싶은일하는게이머

0개의 댓글