2019. 8. 21. 15:59
728x90

문제 번호: 1904

문제 제목: 01타일

문제 주소: https://www.acmicpc.net/problem/1904


문제 내용

00과 1을 조합하여 표현할 수 있는 글자 N개의 가짓수를 출력한다.


테스트 케이스

1

1

2

2

4

5

7

21

1000000

7871


문제 풀이

f(4)에 대해 구한다고 할 경우 아래와 같이 구할 수 있다.
1. 1로 시작하는 숫자는 1xxx가 된다. xxx는 f(4)일 때의 가짓수가 동일하다.
2. 00으로 시작하는 숫자는 00xx가 된다. xx는 f(3) 일 때의 가짓수와 동일하다.
3. f(5)의 가짓수는 1로 시작하는 숫자와 00으로 시작하는 숫자의 가짓수를 합한 것과 동일하다.
 - f(5) = f(4) + f(3)
즉, 이 문제는 점화식이 1, 2인 피보나치 수열이다. 함수 구현은 피보나치 수열을 구현하듯이 하면 된다.

다만 결과 출력이 15746으로 나눈 나머지이고, 나머지 연산의 법칙상 (a % m + b % m) % m은 성립이 되므로# 피보나치 수열을 구하는 과정에서 각 수를 15746으로 나눈 나머지로 계산하여야 올바른 값을 얻을 수 있다.


풀이 코드


728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 1149 - RGB거리  (0) 2019.08.23
백준 9461 - 파도반 수열  (0) 2019.08.21
백준 1003 - 피보나치 함수  (0) 2019.08.19
백준 2748 - 피보나치 수 2  (0) 2019.08.19
백준 10814 - 나이순 정렬  (0) 2019.08.19
Posted by 아야카