문제
문제: 한수는 지금 (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
또는
1 1 5 5
또는
653 375 1000 1000
또는
161 181 762 375
예제 출력: 1 또는 1 또는 347 또는 161
풀이
const fs = require('fs');
const input = fs.readFileSync(0, 'utf-8').trim().split(' ').map(Number);
const [x, y, w, h] = input;
const min = Math.min(x, y, w - x, h - y);
console.log(min);
풀이 해석
1. 왼쪽:6 아래쪽:2 오른쪽:10-6=4 위쪽: 3-2=1
예
x:6 y:2 w:10 h:3
내 위치: x,y인 6,2
w,h위치는 10,3
내 위치와 w,h위치는 사각형임.
여기서 제일 가까운 방향으로 탈출해야함.
왼쪽은 6-0 이니까 6,
오른쪽은 w-x 10-6이니까 4,
아래쪽은 2-0 니까 2,
위쪽은 3-2니까 1
따라서 1이 제일 작은 숫자라서 위쪽으로 탈출하면 된다..
'알고리즘 Node.js' 카테고리의 다른 글
백준 15894문제. 수학은 체육과목 입니다. (0) | 2025.04.19 |
---|---|
백준 3009문제. 네 번째 점 (0) | 2025.04.18 |
백준 27323문제. 직사각형(10단계 시작!) (0) | 2025.04.16 |
백준 11653번. 소인수분해 (0) | 2025.04.15 |
백준 2581문제. 소수 (0) | 2025.04.14 |