https://www.acmicpc.net/problem/1149
이 문제는 현재 칠할 집의 색이 이전에 칠한 RGB의 색과 같지 않아야 한다는 조건이 있습니다.
구현 코드
import Foundation
func BOJ_1149()
{
var n = Int(readLine()!)!
var arr = Array(repeating: [Int](), count: n + 1)
for i in 1...n
{
arr[i] = readLine()!.split(separator: " ").map{Int($0)!}
}
for i in 2...n
{
arr[i][0] += arr[i - 1][1] < arr[i - 1][2] ? arr[i - 1][1] : arr[i - 1][2]
arr[i][1] += arr[i - 1][2] < arr[i - 1][0] ? arr[i - 1][2] : arr[i - 1][0]
arr[i][2] += arr[i - 1][0] < arr[i - 1][1] ? arr[i - 1][0] : arr[i - 1][1]
}
var min = arr[n][0]
min = min < arr[n][1] ? min : arr[n][1]
min = min < arr[n][2] ? min : arr[n][2]
print(min)
}
BOJ_1149()
개선 점 & 새롭게 알게 된 점
새로 알게된 기능 적용한 코드
import Foundation
func BOJ_1149()
{
var n = Int(readLine()!)!
var arr = Array(repeating: [Int](), count: n + 1)
for i in 1...n
{
arr[i] = readLine()!.split(separator: " ").map{Int($0)!}
}
for i in 2...n
{
arr[i][0] += min(arr[i-1][1],arr[i - 1][2])
arr[i][1] += min(arr[i-1][2], arr[i - 1][0])
arr[i][2] += min(arr[i-1][0],arr[i-1][1])
}
print(arr[n].min()!)
}
BOJ_1149()
'백준 PS일지 > DynamicProgramming' 카테고리의 다른 글
[백준/Swift] 11052 : 카드 구매하기 (0) | 2022.07.09 |
---|---|
[백준/Swift] 2133 : 타일 채우기 문제 완전 뿌수기!! (0) | 2022.07.08 |
[백준/Swift] 1904 : 01타일 (0) | 2022.07.07 |
[백준/Swift] 11727 : 2×n 타일링 2 (0) | 2022.07.07 |