내일배움캠프 Node.js 본캠프 55일차

김선우·2024년 10월 28일
post-thumbnail

알고리즘 문제 풀어보기

멀리 뛰기

문제 설명

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.

제한 사항

n은 1 이상, 2000 이하인 정수입니다.

풀이 코드

function solution(n) {
    var answer;
    var t1 = 0;
    var t2 = 1;

    for(i = 2; i <= n+1; i++){
        answer = t1 + t2 % 1234567;
        t1 = t2;
        t2 = answer;
    }
    return answer % 1234567;
}

풀이 과정

1칸을 뛰는 방법 - (1) : 한가지
2칸을 뛰는 방법 - (1, 1) / (2) : 두가지
3칸을 뛰는 방법 - (1, 1, 1) / (2, 1) / (1, 2) : 세가지
4칸을 뛰는 방법 - (1, 1, 1, 1) / (2, 1, 1) / (1, 2, 1) / (1, 1, 2) / (2, 2) : 다섯가지
=> n칸을 뛰는 방법 = (n-2칸을 뛰는 방법) + (n-1칸을 뛰는 방법) = 피보나치수열

피보나치 수열을 구하는 함수를 만들어 1234567로 나눳을때의 나머지를 구하게 해줬다.
여기서 피보나치 수열은 일반적으로 n=0일때 0, n=1일때 1, n=2일때 1, n=3일때 2로 진행되므로 반복문의 조건에 n+1을 해줬다.

개인 과제 (멀티플레이 과제)

튜터님이 주신 일일 퀘스트 해결 영상을 보며 진행하다가 클라이언트에서 정보를 입력하고 접속하기를 눌럿을 때 Cannot read properties of undefined문제가 발생했다.

해당 오류는 객체가 정의되지 않았을 때, 객체의 속성이나 메서드에 접근하려고 시도하면 이 오류가 발생한다고 한다.

해당 오류는 변수 또는 객체 초기화 누락 가장 일반적인 원인은 변수 또는 객체를 선언했지만 초기화하지 않은 경우, 비동기 작업에서의 동기화 문제에 발생한다고 하는데 이전에 decode했을때는 왜 문제가 발생하지 않았다가 내려와서 payloadType에대해서만 문제가 발생하는지 내일 튜터님께 가서 여쭤봐야겠다..

0개의 댓글