프로그래머스 LEVEL 2(2 x n 타일링)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-09-07

  • 해결 방법 :

    • finonacci에 따라 값이 증가하므로 반복문으로 n번째 까지 계산
    • 이 때 overflow 문제를 해결하기 위해 계산 중간에도 % 1000000007 연산 수행
  • 회고 :
    • 처음에 재귀를 통해 해결하려 했으나 시간 초과 문제 발생하여 반복문으로 구현
    • 마지막 return값에만 % 1000000007 연산을 수행하여 시간 초과 문제가 발생
  • 코드

    function solution(n) {
        let count1 = 1;
        let count2 = 2;
        let temp = 0;
        if (n === count1 || n === count2) return n;
        for (let i = 1; i <= n - 2; i++) {
            temp = count1 % 1000000007;
            count1 = count2 % 1000000007;
            count2 = temp + count1;
        }
        return count2 % 1000000007;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges