[백준] 완전 이진 트리 #9934

welchs·2022년 2월 19일
0

알고리즘

목록 보기
37/44
post-thumbnail

후기

분할 정복법으로 푸는 문제.
오랜만에 분할 정복법 풀이를 복습할 수 있었다.

Node.js 풀이

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

const N = Number(input[0]);
const data = input[1].split(' ').map(Number);
const solution = (N, data) => {
  const answer = Array.from(Array(N), () => new Array());
  const divide = (start, end, depth) => {
    if (depth === N) return;
    const mid = Math.floor((start + end) / 2);
    answer[depth].push(data[mid]);
    divide(start, mid - 1, depth + 1);
    divide(mid + 1, end, depth + 1);
  };
  divide(0, data.length, 0);
  return answer.map((v) => v.join(' ')).join('\n');
};

console.log(solution(N, data));
profile
고수가 되고 싶은 조빱

0개의 댓글