[코딩테스트] 🔌 전깃줄 - 백준 2565
2025. 10. 20. 23:06ㆍ알고리즘
문제링크
난이도
골드 5
유형
DP, LIS
소요시간
1시간
회고
DP 문제도 이번 챌린지 들어서 처음이고, LIS 알고리즘도 몰라서 어려웠다. 인접 배열간에 수열이 만들어지면 카운트를 했는데, 인접 배열이 아닌, 전체 배열에서 증가 수열을 구해야했다.
코드
let N = Int(readLine()!)!
var graph = Array(repeating: 0, count: 501)
(0..<N).forEach { _ in
let row = readLine()!.split(separator: " ").map { Int($0)! }
graph[row[0]] = row[1]
}
let dest = graph
.enumerated()
.filter { $0.element != 0 }
.sorted { $0.0 < $1.0 }
.map { ($0.element) }
var dp = Array(repeating: 1, count: dest.count)
print(dest)
for i in 0..<dest.count {
for j in 0..<i {
if dest[i] > dest[j] {
dp[i] = max(dp[i], dp[j] + 1)
}
}
}
print(N - dp.max()!)'알고리즘' 카테고리의 다른 글
| [코딩테스트] 신고결과받기 - Kakao 2022 BLIND (0) | 2025.11.05 |
|---|---|
| [코딩테스트] 🦈 아기 상어 - BJ16236 (0) | 2025.10.22 |
| [코딩테스트] 🦠 연구소 - 백준14502 (0) | 2025.10.20 |
| [코딩테스트] 🧹 로봇청소기 - 백준14503 (0) | 2025.10.20 |
| [코딩테스트] 🏆 등수매기기 - 백준 2012 (0) | 2025.10.15 |