[참고문제] :https://leetcode.com/problems/climbing-stairs/
Climbing Stairs - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 풀이
DP문제다.
DP는 일단 규칙찾기, 점화식 찾기다. 못찾으면 끝나는 문제라고 할 수 있다.
생각의 흐름 - 초기값들을 찾자.
문제에서 보이듯, n = 1, n = 2, n = 3일 때를 보여주고 있다.
점화식 문제처럼 초기값들을 먼저 설정해보자.
생각의 흐름 - 일단 적어보자.
바로 안보이면, 난 일단 적어본다. 생각날 때까지 적다보면, 규칙이 보인다.
이번에도 n=6정도까지 적어보니, 금방 규칙이 보였다.
public int climbStairs(int n) {
int[] arr = new int[45];
arr[1] = 1;
arr[2] = 2;
if(n == 1) {
return 1;
}
else if(n == 2) {
return 2;
}
else {
for(int i = 3; i <= n; i++) {
arr[i] = arr[i-1] + arr[i-2];
}
}
return arr[n];
}
'Algorithm' 카테고리의 다른 글
[java] Find Minimum in Rotated Sorted Array (0) | 2022.07.14 |
---|---|
[java] House Robber (0) | 2022.07.05 |
[java] Flood Fill (0) | 2022.07.04 |
[java] Longest Substring Without Repeating Characters (0) | 2022.07.04 |
[java] Remove Nth Node From End of List (0) | 2022.07.02 |