Coding_Test_C++

BaekJoon 11726번: 2xn 타일링

풀이법

1) 점화식을 구현한다면 누구나 쉽게 풀 수 있는 문제라고 생각한다.

    방법만 안다면 쉽게 풀 수 있는 문제이나 정답률이 낮은 이유는 여러 번 시도한 사람이 많아서일 것이다.

    1차원 배열을 선언 한 후 규칙을 찾아 보았다.

 

   

 

    n=1 : 1개

    n=2 : 2개

    n=3 : 3개

    n=4 : 5개

 

위의 요소를 토대로 규칙을 찾아보니 일종의 계차수열임을 알 수 있었다.

점화식을 구해보니 arr[i]=arr[i-1]+arr[i-2]를 도출할 수 있었다.

10007로 나눈 나머지를 구해야 하므로 최종 점화식은

arr[i] = arr[i-1]%10007 + arr[i-2]%10007 이 된다.

최총 출력 값: arr[n]%10007

 

#include <iostream>
#include <algorithm>
using namespace std;

int fix = 10007;
int n;
int arr[1001];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	arr[1] = 1;
	arr[2] = 2;
	for (int i = 3; i <= n; i++)
	{
		arr[i] = arr[i - 1]%fix + arr[i - 2]%fix;
	}
	cout << arr[n] % fix;
}

github.com/pearlcrum/CodingTest/tree/main

 

pearlcrum/CodingTest

ForPracticingCodingTest. Contribute to pearlcrum/CodingTest development by creating an account on GitHub.

github.com

 

'Coding_Test_C++' 카테고리의 다른 글

BaekJoon 11659번: 구간 합 구하기 4  (0) 2021.04.19
BaekJoon 1912번: 연속합  (0) 2021.04.18
BaekJoon 1149번: RGB거리  (0) 2021.04.16
BaekJoon 2579번: 계단 오르기  (0) 2021.04.12
BaekJoon 9095번: 1, 2, 3 더하기  (0) 2021.04.11