티스토리 뷰

반응형
 

9461번: 파도반 수열

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의

www.acmicpc.net

// 1.
const fs = require('fs');
const [ T, ...inputs ] = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(num => parseInt(num));

// 2.
const padovan = [ 1, 1, 1, 2, 2, 3, 4, 5 ];
const max = Math.max(...inputs);

// 3.
for(let i = padovan.length; i < max; i++) {
  const push = padovan[(i - 1)] + padovan[(i - 5)];
  padovan.push(push);
}

// 4.
inputs.forEach((num) => {
  console.log(padovan[(num - 1)]);
});
  1. 필요한 값을 각각 T, input 배열에 초기화한다.
  2. padovan 배열은 문제에 주어진 예시인 1, 1, 1, 2, 2, 3, 4, 5, 7, 9 중 일부를 담아 초기화된 배열이다.
    반면 max는 문제의 입력으로 주어진 값 중 최대 값으로 초기화 된다.
  3. 파도반 수열은 어느 순간부터는 바로 이전 값과 다섯 번 이전의 값을 더한 값으로만 구성되게 된다.
    이에 따라 파도반 수열을 의미하는 padovan 배열에 값을 push하며, 배열 최대 길이에는 max 변수를 활용한다.
  4. 입력 배열의 각 값을 모두 순회하며 padovan 배열의 값을 출력한다.

결과

8764 KB / 144 ms

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함