오늘은 이전에 풀어봤던 피보나치 수열과 흡사한 문제를 풀어봤다.
function tribonacci(signature,n){
//여기에 n이 0일때 , n이 1일때 n이 2일때 건
if(n === 0) {
return [];
}else if(n === 1){
return [signature[0]];
}else if(n === 2){
return [signature[0],signature[1]];
}
//signature를 통해 result를 만들어 주고( 원본변경 방지)
let result=[...signature];
for(let i =3; i <n; i++){
result.push(result[i-3]+result[i-2]+result[i-1]);
}
return result;
}
저번에 풀었을땐 3일정도? 고민하고 머리를 쥐어 짠거 같았는데 이번엔 20분정도? 만에 푼 것 같다.
순간 어 봤는데 , 하면서 혼자 codewars에서 개발자도구를 키고 혼자 테스트 해보면서 풀었다.
노트와 펜으로 먼저 써보고 이렇게 하면 되겠다 싶어서 바로 코드를 작성했다.
사실 n이 3보다 작거나 같을때 이 부분은 다른방법으로 수정좀 해봐야 할 것 같다. 가독성은 (내가보기엔) 좋아보이지만 어딘가모르게 코드가 길다..