요구능력
DP(메모이제이션)
문제설명
이론적으로 설명을 아주 잘 정리 해놓으신 분이 계신데 추천드립니다.
https://everenew.tistory.com/34
[백준] No.5557 - 1 학년 (C++)
문제 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자
everenew.tistory.com
후기
DP는 많이 풀어보는게 답이고, 다양한 풀이법을 계속해서 반복해야한다.
코드
let n = Int(String(readLine()!))!
var arr = readLine()!.split(separator: " ").map{Int(String($0))!}
var dp = Array(repeating: Array(repeating: 0, count: 901), count: 101)
dp[0][arr[0]] = 1
for i in 1..<n{
for j in 0...20{
if dp[i - 1][j] > 0{
if j - arr[i] >= 0{
dp[i][j - arr[i]] += dp[i - 1][j]
}
if j + arr[i] <= 20 {
dp[i][j + arr[i]] += dp[i - 1][j]
}
}
}
}
print(dp[n - 2][arr[n - 1]])
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
[Swift][Graph] 백준 12946번 (육각보드) (4) | 2022.03.22 |
---|---|
[Swift][BruteForce] 백준 14391번 (종이 조각) (0) | 2022.03.22 |
[Swift][프로그래머스][DFS] 네트워크 (0) | 2022.03.15 |
[Swift][DFS] 백준 1248번 (맞춰봐) (0) | 2022.03.15 |
[Swift][DP] 백준 5582번 (공통 부분 문자열) (0) | 2022.03.14 |
댓글