https://programmers.co.kr/learn/courses/30/lessons/43104
코딩테스트 연습 - 타일 장식물 | 프로그래머스
대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다. 그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다. [1, 1
programmers.co.kr
간단한 DP 문제였다.
다음 타일의 크기를 구하는 과정은 피보나치 수열이었고,
전체 둘레를 구하는 과정은 타일이 그려지는 패턴을 보고 직관으로 파악하였다.
#include <string>
#include <vector>
using namespace std;
long long solution(int N) {
long long answer = 0;
vector<long long> v(N+1);
// 1~n까지 반복
v[1]=1,v[2]=1; // 초기화
for(int i=3;i<=N;i++){
v[i] = v[i-1]+v[i-2]; // DP
}
// 둘레 계산 (N 번째 정사각형 둘레 + N-1번째 정사각형의 둘레 반)
answer += ((4 * v[N]) + (2*v[N-1])) ;
return answer;
}
'Archived(CSE Programming) > 알고리즘(C++)' 카테고리의 다른 글
프로그래머스_ 정수 삼각형 (0) | 2019.11.17 |
---|---|
프로그래머스_단속카메라 (0) | 2019.11.17 |
프로그래머스_N으로 표현 (0) | 2019.11.16 |
프로그래머스_2*n 타일링 (0) | 2019.11.16 |
백준 17144_미세먼지 안녕! (0) | 2019.10.19 |