코드치고 무게치고

[백준 Node.js] 1085번 직사각형에서 탈출 javascript 본문

개발공부/코딩테스트 준비

[백준 Node.js] 1085번 직사각형에서 탈출 javascript

코딩하자영아 2022. 2. 7. 20:56

백준 1085번 문제

레벨: 브론즈3

언어: JavaScript


문제풀러가기

문제설명

한수는 지금 (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는 정수

📑풀이 과정

한수가 있는 (x,y)에서 경계선 까지 수직, 수평으로 갔을 때 거리의 최소값이 나온다.

(x,y)에서 (x,h), (x,0), (w,y), (0,y) 까지의 길이를 구하고 제일 짧은 값을 출력하면 된다.

📋풀이 코드

const fs = require("fs");  
let input = fs  
  .readFileSync("/dev/stdin")  
  .toString()  
  .trim()  
  .split(" ")  
  .map((el) => +el);  

solution(input);  
function solution(input) {  
  const [x, y, w, h] = input;  
  let answer = [];  

  answer.push(Math.abs(y - h));  
  answer.push(Math.abs(y - 0));  
  answer.push(Math.abs(w - x));  
  answer.push(Math.abs(x - 0));  

  console.log(Math.min(...answer));  
}

Comments