Informatica Online Judge

  [상태 정의를 통한 탐색] 계단 오르기 8 [3126 / 0C36]

Time Limit(Test case) : 100000 (ms)
Number of users who solved : 644   Total Tried : 1297


The Champion of this Problem (C++) : gs22100 - ms / 282byte
My Best Submission (C++) : N/A

[koistudy.net (unkonwn)]

Background

OO이와 XX가 계단을 올라가려고 한다.

계단은 모두 n칸으로 구성되어 있다.

OO이와 XX는 한 번에 1칸, 2칸, 3칸을 오를 수 있다.

OO이와 xx가 0번째 칸에서 출발하여 0번째 칸과 n번칸을 제외하고 동시에 같은 칸에 위치하지 않으면서
동시에 n번째 칸으로 올라가는 서로 다른 방법의 수를 구하는 프로그램을 작성하시오.

만약 n이 3이면

- (3, 3)
- (1, 2), (3, 3)
- (2, 1), (3, 3)

로 모두 3가지 경우가 있다.

Input

첫 번째 줄에 계단의 수를 나타내는 정수 n이 입력된다.

[입력값의 정의역]
1 ≤ n ≤ 15

Output

계단을 올라가는 서로 다른 경로의 수를 출력한다.

IO Example

입력
3

출력
3


보충 설명 :
이 문제는 계산문제 중 카운팅 문제입니다.

이 문제는 상태를 나타내는 2개의 변수를 이용하여 해당 상태가 탐색할 수 있는 상태인지 할 수 없는 상태인지 판단하는 문제이다.

여기서 구하고자 하는 것은 상태에 대한 조건을 만족하면서 수행작업을 통해 초기상태에서 목표 상태로 가는 경로의 수입니다.

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python3]
Prob Analysis : [Problem Statistics] | [Solution]