쥐수의 공부노트
백준 2579번 계단 오르기 본문
728x90


정답 :
let n = Int(readLine()!)!
var stairs = [Int]()
var dp = Array(repeating: 0, count: n+1)
for _ in 0..<n {
let input = Int(readLine()!)!
stairs.append(input)
}
dp[1] = stairs[0]
if n >= 2 {
dp[2] = stairs[0] + stairs[1]
}
for i in 3...n {
dp[i] = max(dp[i-2], dp[i-3] + stairs[i-2]) + stairs[i-1]
}
print(dp[n])
더보기
TMI : 코드블럭을 사용해서 올리는 방법을 알게 되었다.. 할 줄 몰라서 스크린샷만 사용했는데.. 앞으로는 코드블럭을 애용하자!
문제에 대해서 2차원 배열을 사용하는 방법과 1차원 배열을 사용하는 방법을 진행했지만, 내가 코드를 잘못 옮긴건지, 자꾸 오답이 나왔다.
그래서 아쉽게도 바킹독 님의 코드를 가져오진 못했다!
728x90
'바킹독 알고리즘 > 다이나믹 프로그래밍' 카테고리의 다른 글
백준 11659번 구간 합 구하기 4 (0) | 2023.06.03 |
---|---|
백준 11726번 2 x n 타일링 (0) | 2023.06.03 |
백준 1149번 RGB거리 (0) | 2023.06.03 |
백준 9095번 1,2,3 더하기 (0) | 2023.06.01 |
백준 1463번 1로 만들기 (0) | 2023.06.01 |