백준 11726 - 2xn 타일

황재진·2024년 8월 2일

백준

목록 보기
54/54

규칙성을 찾아야 하는 문제입니다.

위 사진은 제가 직접 경우의 수를 세서 규칙성을 찾을려고 그린 그림입니다. 최대한 이전 것들과의 관계에 집중하면서 그리다보니 이전 수에서 | 이렇게 생긴걸 추가하고 두번째 이전 수에서 =이렇게 생긴걸 추가하니 현재 칸에서 만들 수 있는 모든 경우의 수가 만들어짐을 찾았습니다.
즉, arr[n] = arr[n-1] + arr[n-2] 입니다. 1번과 2번은 그 이전이 다 있지 않기에 직접 넣어줘야 합니다.

#include <iostream>
#include <vector>

int main()
{
	int n;
	std::cin >> n;

	std::vector<int> nums(n + 1);

	nums[1] = 1;
	nums[2] = 2;

	for (int i = 3; i <= n; i++)
	{
		nums[i] += (nums[i - 1] + nums[i - 2]) % 10007;
	}

	std::cout << nums[n];

	return 0;
}
profile
프로그래밍, 쉐이더 등 이것저것 다해보는 게임 개발자입니다

0개의 댓글