Programing/백준

[백준 / nodejs] 1085번 : 직사각형에서 탈출

sunflo 2023. 12. 7.

 

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

문제

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

입력

첫째 줄에 x, y, w, h가 주어진다.

출력

첫째 줄에 문제의 정답을 출력한다.

제한

  • 1 ≤ w, h ≤ 1,000
  • 1 ≤ x ≤ w-1
  • 1 ≤ y ≤ h-1
  • x, y, w, h는 정수

풀이

아래 이미지는 첫번째 예제를 그린 이미지입니다.

6 2 10 3

다음과 같은 정보를 알 수 있습니다.

  • 좌측 변과의 거리 : 한수의 x값 그대로
  • 우측 변과의 거리 : w - x
  • 위쪽 변과의 거리 : h - y
  • 아래쪽 변과의 거리 : 한수의 y값 그대로

이렇게 4개의 거리를 배열에 저장한뒤 오름차순으로 정렬하여 첫번째 값을 출력합니다.

코드

const input = require("fs").readFileSync("dev/stdin").toString().trim();
const [x, y, w, h] = input.split(" ");
const arr = [Number(x), Number(y), w - x, h - y];

console.log(arr.sort((a, b) => a - b)[0]);

댓글