Skip to content

Commit 402d5c0

Browse files
donghyeon95donghyeon95
authored andcommitted
feat: Climbing Stairs DaleStudy#230
1 parent bdf91d1 commit 402d5c0

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

โ€Žclimbing-stairs/donghyeon95.java

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
/*
3+
* ์ฒ˜์Œ ํ’€์ด
4+
* n๊ฐœ ์ค‘ 2๋ฅผ ์„ ํƒํ•˜๋Š” ์กฐํ•ฉ ๋ฌธ์ œ๋กœ ํ•ด๊ฒฐ
5+
* 21๋ถ€ํ„ฐ overflow ๋ฐœ์ƒ => ๋„ˆ๋ฌด ํฐ ์ˆซ์ž
6+
* ์ด๋Œ€๋กœ ํ‘ธ๋ ค๋ฉด 1๊ณผ 2์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ™์•„์ง€๋Š” ๊ฒฝ์šฐ * 2๋ฅผ ํ•˜๋ฉด f(1๊ฐฏ์ˆ˜, 2๊ฐฏ์ˆ˜) ํ•  ๋•Œ, f(x, y) = f(y,x)๋Š” ๊ฐ™๋‹ค๋Š” ์ ์„ ์ฐฉ์•ˆํ•˜๋ฉด 42๊นŒ์ง€๋Š” ํ’€ ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•˜๋‹ค.
7+
* ํ•˜์ง€๋งŒ 45๋ผ์„œ ์•ˆ๋˜๋Š” ๊ฑฐ ๊ฐ™๋‹ค.
8+
* */
9+
10+
// public int climbStairs(int n) {
11+
// // N๊ฐœ์˜ 1์ค‘์—์„œ ๋ฌถ์ด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€
12+
// // 5 => 1 1 1 1 1
13+
// // 2์˜ ๊ฐฏ์ˆ˜๊ฐ€ 0๊ฐœ 2/n ๊นŒ์ง€ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋  ๋“ฏ
14+
// long result = 0;
15+
// int max2Cnt = n/2;
16+
// for (int i=0; i<max2Cnt+1; i++) {
17+
// int cnt = n-2*i + i; // ์กฐํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜๋Š” 2์˜ ๊ฐœ์ˆ˜ + 1์˜ ๊ฐฏ์ˆ˜
18+
// result += factorial(cnt) / (factorial(i) * factorial(cnt-i));
19+
// }
20+
//
21+
// for (long k: nFact) {
22+
// System.out.println(k);
23+
// }
24+
//
25+
// return (int)result;
26+
// }
27+
//
28+
// public long factorial(int i) {
29+
// if (nFact[i] != 0) return nFact[i];
30+
// if (i == 0 || i == 1) {
31+
// nFact[i] = 1;
32+
// return 1;
33+
// }
34+
//
35+
// long result = i * factorial(i - 1);
36+
// nFact[i] = result;
37+
// return result;
38+
// }
39+
40+
/*
41+
* ๋‘๋ฒˆ์งธ ํ’€์ด
42+
* ๋‚˜์˜ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๊ฒฝ์šฐ = ์ด์ „์— 1์นธ ์˜ค๋ฅธ ๊ฒฝ์šฐ์˜ ์ˆ˜ + ์ด์ „์— 2์นธ ์˜ค๋ฅธ ๊ฒฝ์šฐ์˜ ์ˆ˜
43+
* ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N)์— ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.
44+
* */
45+
46+
class Solution {
47+
public int climbStairs(int n) {
48+
// k๋ฒˆ์งธ์˜ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š”
49+
// k-1 ๋ฒˆ์งธ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ + K-2๋ฒˆ์งธ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜
50+
if (n <= 2) return n;
51+
52+
int first = 1;
53+
int second = 2;
54+
55+
for (int i = 3; i <= n; i++) {
56+
int third = first + second;
57+
first = second;
58+
second = third;
59+
}
60+
61+
return second;
62+
}
63+
}
64+

0 commit comments

Comments
ย (0)