반응형
문제
https://www.acmicpc.net/problem/11055
풀이
어제 풀었던 문제에서 약간만 응용하면 쉽게 풀 수 있는 문제이다.
dp값을 초기화 하는 것은 자기 자신의 값으로 초기화 해주자.
=> 자기 자신도 부분수열이 될 수 있기 때문
이중 for문을 돌면서 이전 원소보다 크다면 내 원소를 붙일 수 있는 것을 기억하자.
코드는 어제 푼 것과 거의 동일하다.
소스코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let n = Int(readLine()!)! | |
let array = readLine()!.split { $0 == " " }.map { Int($0)! } | |
var dp = array | |
for i in 0..<n { | |
for j in i..<n { | |
if array[j] > array[i] { | |
dp[j] = max(dp[j], dp[i] + array[j]) | |
} | |
} | |
} | |
print(dp.max()!) |
후기
전날 풀었던 문제와 거의 유사해서 쉽게 풀 수 있었다.
반응형
'TIL > 코테 스터디' 카테고리의 다른 글
99클럽 코테 스터디 30일차 TIL: LIS (1) | 2024.11.26 |
---|---|
99클럽 코테 스터디 29일차 TIL: DP (0) | 2024.11.25 |
99클럽 코테 스터디 27일차 TIL: LIS (0) | 2024.11.23 |
99클럽 코테 스터디 26일차 TIL: 게임 (0) | 2024.11.22 |
99클럽 코테 스터디 25일차 TIL: 완전 탐색 (0) | 2024.11.21 |