[LeetCode] 70. Climbinh Stairs
https://leetcode.com/problems/climbing-stairs/
๋ฌธ์ ์ ๊ทผ
์ฒ์์๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด์ ํ์ด๋ณด๋ ค๊ณ ํด์ ์ ์ถ์ ํ์ง๋ง ์๊ฐ ์ด๊ณผ๊ฐ ๋์๋ค.
๊ทธ๋์ DP ๋ฐฉ์์ผ๋ก ํ์ด๋ณด์๋ค.
DP ๋ฐฉ์์ผ๋ก ํ๊ธฐ ์ํด์๋ ์ ํ์?์ ๋ฐ๊ฒฌํด์ผ ํ๋ค. ๋ญ๊ฐ ๊ต์ฅํ ์ด๋ ค์ ๋ณด์ด์ง๋ง ๊ฐ์๊ธฐ ๊ฐ์ด ์กํ๋ค.(๊ท์น์ ์ฐพ๋ ๋๋?)
๊ณ๋จ์ ํ๋ฒ์ 1์นธ ๋๋ 2์นธ์ ์ด๋ํ ์ ์๋ค.
๊ทธ๋ฌ๋ฉด 1๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๋ ค๋ฉด 0๋ฒ์งธ์์ ์์ํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ 2๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๊ธฐ ์ํด์๋ 0๋ฒ์งธ๊ฑฐ๋ 1๋ฒ์งธ ๊ณ๋จ์์ ์์ํด์ผํ๋ค.
๋, 3๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๊ธฐ ์ํด์๋ 1๋ฒ์งธ๊ฑฐ๋ 2๋ฒ์งธ ๊ณ๋จ์์ ์์ํด์ผํ๋ค.
์ฌ๊ธฐ์ n๋ฒ์งธ ๊ณ๋จ์ ์ค๋ฅด๊ธฐ์ํด์๋ n-1๋ฒ์งธ์ n-2๋ฒ์งธ ๊ณ๋จ์์ ์์ํด์ผํ๋๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด n-1๋ฒ์งธ ๊ณ๋จ๊ณผ n-2๋ฒ์งธ ๊ณ๋จ์ ๊ฒฝ์ฐ์ ์๋ฅผ ํฉ์น ๊ฐ์ด n๋ฒ์งธ ๊ณ๋จ์ ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์์ธ๊ฒ์ด๋ค.
Code
class Solution {
public int climbStairs(int n) {
if(n<=2) return n;
int[] step = new int[n+1];
step[1] = 1; // ์ฒซ๋ฒ์งธ ๊ณ๋จ์ ๋ฐฉ๋ฒ 1๊ฐ
step[2] = 2; // ๋๋ฒ์งธ ๊ณ๋จ์ ๋ฐฉ๋ฒ 2๊ฐ
for(int i = 3; i<=n; i++){
// i๋ฒ์งธ ๊ณ๋จ์ ๋ฐ๊ธฐ ์ํด์๋ i-1๋ฒ์งธ์ i-2๋ฒ์งธ ๊ณ๋จ์์ ์์ผํ๋ค.
step[i] = step[i-1]+step[i-2];
}
return step[n];
}
}
์ด๋ ค์ ๋ ์ / ๋ฐฐ์ด ์ / ๋๋ ์
์ ํ์์ด๋ผ๊ณ ํด์ ์ด๋ ค์ ๋ณด์ด์ง๋ง ์ฝ๊ฐ ๊ท์น ์ฐพ๋ ๋๋์ด๋ค.
์ด๋ฐ ๋ฌธ์ ๋ ๋ฐฑ์ค์์๋ ๋ช๋ฒ ๋ด์ ์ด๋ ต์ง ์๊ฒ ์ ๊ทผํ ์ ์์๋ค.
์ ํ์์ ์ฌ์ฉํ๋ ์ด์ ๋ ์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ ๊ณ๋จ์ฒ๋ผ ๋ฎ์ ๊ณ๋จ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๊ธฐ๊ฐ ์ฝ์ง๋ง ์ฌ๋ผ๊ฐ์๋ก ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๊ธฐ๊ฐ ์ด๋ ค์ ์ง๊ธฐ๋๋ฌธ์ ๊ท์น์ ์์ผ๋ก ๋ณํํด์ ํ๊ธฐ ์ํจ์ด๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][LeetCode] 101. Symmetric Tree (0) | 2022.02.05 |
---|---|
[Algorithm/Java][๋ฐฑ์ค] 2805๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2022.01.28 |
[Algorithm/Java][LeetCode] 53. Maximum subarray (0) | 2022.01.23 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2022.01.21 |
[Algorithm/Java][BOJ] 3052๋ฒ ๋๋จธ์ง (0) | 2022.01.21 |