티스토리 뷰

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/43104

 

코딩테스트 연습 - 타일 장식물

대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개��

programmers.co.kr

 

2. 설명

그냥 규칙찾아서 재귀로 풀어버렸는데 알고보니 피보나치 문제였다 ㅋㅋ...

피보나치로 따로 다시 풀었다 ㅋㅋ

 

3-1. 코드 - 제멋대로 규칙

class Solution {
    static long answer;
    public long solution(int N) {
        answer = 4; // N은 1이상의 자연수
        round(N, 1, 1, 1);
        return answer;
    }
    private void round(int N, int idx, long shortSide, long longSide) {
        if(idx==N) return;

        answer += (longSide * 2);
        long tmp = shortSide;
        shortSide = longSide;
        longSide += tmp;
        
        round(N, ++idx, shortSide, longSide);
    }
}

 

3-2. 코드 - 피보나치

class Solution {
    public long solution(int N) {
        long[] fibonacci = new long[N];
        fibonacci[0] = 1;
        fibonacci[1] = 1;
        for(int i=2; i<fibonacci.length; i++) {
            fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
        }
        
        return round(N, fibonacci);
    }
    private long round(int N, long[] fibonacci) {
        return fibonacci[N-1] * 4 + fibonacci[N-2] * 2;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday