[코딩테스트] 프로그래머스 - 2 x n 타일링(Java)

proman·2022년 9월 9일
0

Coding-Test

목록 보기
5/21
post-thumbnail

🎉 설명

레벨: 2
언어: Java

⚾ 느낀점

해당문제 알고리즘을 고민해봤는데 답이 바로 안나와서 확인해보니 피보나치수열이여서
1 + 2 + (1+2) + (2+3) + (3+5)...
형태이며 해당값 많으면 나누기수로 나누라고 하니 풀게되었는데 다른 피보나치수열을 이용한 문제나올시 좀더 수월해지는경험을 쌓을수있었다..

💍 내가 작성한코드

class Solution {
    public int solution(int n) {
        
        int answer = 0;
        
        for(int i = 0, prev = 0, now = 1; i < n; i++, prev = now, now = answer) {
            answer = (now + prev) % 1_000_000_007;
        }
        
        
        return answer;
    }
}

🪕 좋아요 가장 많이 받은코드

// 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
class TryHelloWorld {

    public int tiling(int n) {
        int a = 1;
        int b = 1;
        for (int i = 0; i < n - 1; i++) {
            int fib = (a + b) % 100000;
            a = b;
            b = fib;
        }
        return b;
    }

    public static void main(String args[]) {
        TryHelloWorld tryHelloWorld = new TryHelloWorld();
        //아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.print(tryHelloWorld.tiling(2));
    }
}

0개의 댓글