baekjoon - 직사각형에서 탈출(1085)

ohbin Kwon·2022년 3월 28일
0

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));

https://dpsc615.tistory.com/114 허탈 그자체

그니까 직사각형이 탈출하려면 x-0, y-o, w-x, h-y 중 가장 최솟값을 찾아내기만 하면 되는것이였다. 허탈하구만 ㅎㅎ..

profile
개발 로그

0개의 댓글

관련 채용 정보