9184. 신나는 함수 실행
1. 3차원 배열을 만드는 것이 핵심
2. 그 배열의 값들을 모두 저장 (a,b,c <=20)
3. 배열[a][b][c] => 정답
2579. 계단 오르기
max값을 배열에 저장
i = 현재 계단
M[i] = 계단이 i까지 있을 때 가장 큰값
V[i] = 현재 계단의 값
1. 바로 전 계단에서 옴 : M[i-3] + V[i-1] + V[i]
2. 한칸 띄어 옴 : M[i-2] + V[i]
3. 1,2를 비교하면 M[i]의 쵀댓값을 구할 수 있다
4. M[0],M[1],M[2] 값을 구하면 M[3]부터는 자동으로 구하기 가능!
5. M[0] = V[0]
6. M[1] = V[0]+V[1]
7. M[2] = max( V[0]+V[2], V[1]+V[2])
11053. 가장 긴 증가하는 부분 수열
1. 가장 큰 부분 수열의 '길이'만 알면 된다
2. 부분수열을 만드는 도중에 필요한 것:
1) 부분 수열의 마지막 값 (대소비교)
2) 수열의 길이
1. A[i] 수열의 값이 들어있는 리스트
2. B[i] [0]부터 시작하는 빈 리스트
3. A[i] > B[-1] ==> B에 A[i]를 삽입
4. A[i] <= B[-1] ==> 새로운 부분 배열의 시작임
B안의 값들과 비교를 해나감
if B[j] >= A[i]: B값이 크거나 같은 값이 나오면
B[j] = A[i] 그 값을 A[i와 교체]
5. 3,4 반복
11053. 가장 긴 증가하는 부분 수열 참고