728x90
반응형
leetcode.com/problems/climbing-stairs/
안녕하세요!! 후르륵 짭짭 입니다!
오늘도 DP 알고리즘에 대해서 공부 해보도록 하겠습니다.
** 전체 코드 **
func climbStairs(_ n: Int) -> Int {
var start : Int = 3
var array : [Int] = [1,2]
while ( start <= n ){
let total = array[0] + array[1]
array = swap(array: array, new: total)
start += 1
}
if n == 1 {
return 1
}
return array[1]
}
func swap(array : [Int], new : Int ) -> [Int] {
var newArray = array
let temp = newArray[1]
newArray[1] = new
newArray[0] = temp
return newArray
}
** 문제 **
계단을 목표한 N 층 까지 올라가는데, 올라가는 방법이 1층 과 2층 올라가기 두가지 방법이 있습니다.
따라서 N층까지 올라갈 수 있는 총 방법을 출력하는 것이 이 문제 입니다.
** 해결 방법 **
그냥 DP 문제 입니다.
1 - 1
2 - 2
3 - 3
4 - 5
5 - 8
6 - 13 ,,,,
이렇게 증가 합니다.
그래서 현재 위치 = ( 현재위치 - 1 ) + ( 현재위치 - 2 )
이렇게 해주면 됩니다.
참 쉽죠???
LeetCode가 좋은 이유는 Solution을 볼 수 있기 때문에,
다양한 해결 방법을 문서화 해놓아서 좋습니다!
그래서 알지 못 했던 알고리즘을 공부 할 수 있져!
또한 해결방법 보면서 모르는 영어단어 까지 공부하면 더 좋습니다~
** 영어 단어 **
Induction - 귀납법 , 유도
substructure - 하부구조
redundantly - 과다하게
모두 즐코코코코
728x90
반응형
'Xcode > Swift - Algorithm' 카테고리의 다른 글
Swift) 프로그래머스(Lv1) 수박수박수박수박수? (String) (0) | 2020.07.13 |
---|---|
Swift) LeetCode(Easy) - Best-Time-To-Buy-And-Sell-Stock(DP) (0) | 2020.07.13 |
Swift) LeetCode(Easy) - Maximum Subarray(DP) (0) | 2020.07.08 |
Swift) LeetCode(Easy) - Two Sum (Dictionary) (0) | 2020.07.08 |
Swift) 프로그래머스(Lv1) 문자열 내 p와 y의 개수 (LowerCase) (0) | 2020.07.07 |
댓글