https://www.acmicpc.net/problem/1085
const input = require('fs')
.readFileSync(process.platform === 'linux' ? '/dev/stdin' : './ex.txt')
.toString()
.trim()
.split(' ')
.map((n) => Number(n));
function decideLayer(x, y, w, h) {
let layer;
let rowDecider = w / 2 - x;
let colDecider = h / 2 - y;
switch (rowDecider < 0) {
case true:
layer = colDecider < 0 ? 'layer1' : 'layer2';
break;
case false:
layer = colDecider < 0 ? 'layer3' : 'layer4';
break;
}
return layer;
}
function calculator(a, b, c, d) {
return a - b > c - d ? c - d : a - b;
}
function decideDirection(layer, x, y, w, h) {
let answer;
switch (layer) {
case 'layer1':
answer = calculator(w, x, h, y);
break;
case 'layer2':
answer = calculator(w, x, y, 0);
break;
case 'layer3':
answer = calculator(x, 0, h, y);
break;
case 'layer4':
answer = calculator(x, 0, y, 0);
break;
}
return answer;
}
console.log(decideDirection(decideLayer(...input), ...input));
9328kb / 140ms
const input = [6, 2, 10, 3]; // x y w h
const x = input[0];
const y = input[1];
const w = input[2];
const h = input[3];
const counters = [x, y, w - x, h - y];
console.log(Math.min.apply(null, counters));
그니까 직사각형이 탈출하려면 x-0, y-o, w-x, h-y 중 가장 최솟값을 찾아내기만 하면 되는것이였다. 허탈하구만 ㅎㅎ..