-
Level 3 > 2 x n 타일링프로그래머스(Programmers) 2018. 8. 20. 09:31반응형
https://programmers.co.kr/learn/courses/30/lessons/12900
1. 문제
2. 알고리즘
키워드 - DP
* 문제 접근
N 이 1 일때 = 1
N 이 2 일때 = 2
N 이 3 일때 = 1+2
N 이 4 일때 = 1 + 2 + 2
DP[1] = 1;
DP[2] = 2;
DP[3] = DP[2] + DP[1];
DP[4] = DP[3] + DP[2];
DP[5] = DP[4] + DP[3];
키포인트
하지만 만약 답이 123456789라면 56789만 반환해주면 됩니다. 리턴하는 숫자의 앞자리가 0일 경우 0을 제외한 숫자를 리턴하세요.
경우의 수가 많기 때문에 해를 구하고 % 로 연산자로 절단이 필요 하다.
123456789 % 100000 = 56789
3. 코드
123456789101112131415161718#include <string>#include <vector>using namespace std;int solution(int n) {int answer = 0;int dp[600001] = {0,};dp[1] = 1;dp[2] = 2;for(int i=3; i<=n;i++)dp[i] = (dp[i-2] + dp[i-1]) % 1000000007;answer = dp[n];return answer;}cs 반응형'프로그래머스(Programmers)' 카테고리의 다른 글
Level 3 > 가장 긴 팰린드롬 (0) 2018.08.22 Level 2 > JadenCase (0) 2018.08.22 DrawRect (0) 2018.08.20 가장 큰 정사각형 찾기 (0) 2018.08.20 Level 1 > 자릿수 더하기 (0) 2018.08.20