기본 콘텐츠로 건너뛰기

2579 : Climbing stairs (Dynamic Programming) [C,C++]

This game has three rules as you know.

1. Stairs can be climbed one step at a time or two steps at a time. That is, by stepping on one stair, you can go up to the next stair, then the next stair.
2. You should not step on all three consecutive stairs. However, the starting point is not included in the stairs.
3. The last arriving stairs must be stepped on.

In other words,
rule 2, If you have climbed two stairs in succession, the next action must be a 'jump'.
rule 3, The maximum value is the value of the last step.

The most important thing to solve this problem is to store two values in one step because there is a 'jump' variable. 

Therefore, we must use a dynamic two-dimensional array.

You can get the maximum value by storing the values of 'jump' and successive steps.

<pseudo code>

*Source of the problem = https://www.acmicpc.net/problem/2579
*문제 출처 : BAEKJOON ONLINE JUDGE

댓글

이 블로그의 인기 게시물

1978 : 소수 찾기 [C++]

# include < iostream > # include < vector > using namespace std ; int main ( ) { cin . tie ( NULL ) ; vector < int > Primes ; Primes . push_back ( 2 ) ; Primes . push_back ( 3 ) ; for ( int i = 4 ; i < 1000 ; i + + ) { bool IsPrime = true ; if ( i % 2 = = 0 | | i % 3 = = 0 ) continue ; for ( int j = 4 ; j < i ; j + + ) { if ( i % j = = 0 ) { IsPrime = false ; break ; } } if ( IsPrime ) Primes . push_back ( i ) ; } int N , Count = 0 ; cin > > N ; for ( int i = 0 ; i < N ; i + + ) { int Input ; cin > > Input ; for ( int j = 0 ; j < Primes . size ( ) ; j + + ) if ( Input = = Primes [ j ] ) Count + + ; } cout < < Count < < " \n " ; return 0 ; }

10828 : 스택 [Python]

Stack = [ ] def push ( num ) : Stack . append ( int ( num ) ) def pop ( ) : if len ( Stack ) > 0 : print ( Stack . pop ( ) ) else : print ( - 1 ) def size ( ) : print ( len ( Stack ) ) def empty ( ) : if len ( Stack ) == 0 : print ( 1 ) else : print ( 0 ) def top ( ) : if len ( Stack ) > 0 : print ( Stack [ len ( Stack ) - 1 ] ) else : print ( - 1 ) TestCase = int ( input ( ) ) while TestCase > 0 : Command = input ( ) if Command == 'top' : top ( ) elif Command == 'pop' : pop ( ) elif Command == 'empty' : empty ( ) elif Command == 'size' : size ( ) else : push ( Command [ 5 : ] ) TestCase - = 1