[Swift Algorithm] RGB거리 BOJ #1149
λ¬Έμ μ€λͺ
RGB거리μλ μ§μ΄ Nκ° μλ€. 거리λ μ λΆμΌλ‘ λνλΌ μ μκ³ , 1λ² μ§λΆν° Nλ² μ§μ΄ μμλλ‘ μλ€.
μ§μ λΉ¨κ°, μ΄λ‘, νλ μ€ νλμ μμΌλ‘ μΉ ν΄μΌ νλ€. κ°κ°μ μ§μ λΉ¨κ°, μ΄λ‘, νλμΌλ‘ μΉ νλ λΉμ©μ΄ μ£Όμ΄μ‘μ λ, μλ κ·μΉμ λ§μ‘±νλ©΄μ λͺ¨λ μ§μ μΉ νλ λΉμ©μ μ΅μκ°μ ꡬν΄λ³΄μ.
- 1λ² μ§μ μμ 2λ² μ§μ μκ³Ό κ°μ§ μμμΌ νλ€.
- Nλ² μ§μ μμ N-1λ² μ§μ μκ³Ό κ°μ§ μμμΌ νλ€.
- i(2 ≤ i ≤ N-1)λ² μ§μ μμ i-1λ², i+1λ² μ§μ μκ³Ό κ°μ§ μμμΌ νλ€.
μ λ ₯
첫째 μ€μ μ§μ μ N(2 ≤ N ≤ 1,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ κ° μ§μ λΉ¨κ°, μ΄λ‘, νλμΌλ‘ μΉ νλ λΉμ©μ΄ 1λ² μ§λΆν° ν μ€μ νλμ© μ£Όμ΄μ§λ€. μ§μ μΉ νλ λΉμ©μ 1,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ λͺ¨λ μ§μ μΉ νλ λΉμ©μ μ΅μκ°μ μΆλ ₯νλ€.
μ μΆλ ₯ μμ
μ λ ₯
3
26 40 83
49 60 57
13 89 99
μΆλ ₯
96
λ΄ λ¬Έμ νμ΄
let n = Int(readLine()!)!
var red = Array(repeating: 0, count: n)
var green = Array(repeating: 0, count: n)
var blue = Array(repeating: 0, count: n)
for i in 0..<n {
let now = readLine()!.split(separator: " ").map({Int(String($0))!})
if i == 0 {
red[0] = now[0]
green[0] = now[1]
blue[0] = now[2]
}
else {
red[i] = min(green[i-1], blue[i-1]) + now[0]
green[i] = min(red[i-1], blue[i-1]) + now[1]
blue[i] = min(red[i-1], green[i-1]) + now[2]
}
}
print(min(red.last!, green.last!, blue.last!))
π DP λ¬Έμ λ‘, μ§ λ§λ€ μ΄λ€ μμ μΉ νλ€λ μ μ λ₯Ό λ°νμΌλ‘ μΈ κ°μ§ κ²½μ°μ μλ₯Ό λ§λ€μ΄μ£Όλκ² ν¬μΈνΈ!
μ΄ λ¬Έμ λ μ΄μ μ νμλ #2579 κ³λ¨μ€λ₯΄κΈ° λ¬Έμ μ ν‘μ¬νλ―λ‘, μ°Έκ³ !
[νμ΄ μ€λͺ ]
- 1, 2, 3 μμ΄ μλ€κ³ νκ³ , κ°κ° 1μ 골λμ λ, 2, κ·Έλ¦¬κ³ 3μ 골λλ€κ³ κ°μ νλ κ²½μ°μ μλ₯Ό
λ©λͺ¨μ΄μ μ΄μ μΌλ‘ κΈ°λ‘νμ¬ λ§μ§λ§μ κ·Έ μ€ μ΅μκ°μ μΆλ ₯ν΄μ£Όμ΄μΌνλ€. - λνλ‘ 1, λΉ¨κ°μμ 골λλ€κ³ νλ κ²½μ°μ μλ₯Ό λ°μ Έλ³΄μ.
μ΄λ€ μ§μ λΉ¨κ°μμΌλ‘ μΉ νλ€λ κ²μ λ°λ‘ μ΄μ μ§μ μ΄λ‘μ΄λ νλμ 골λλ€λ κ²μ μλ―Ένλ€.
λ°λΌμ 1μ κ³ λ₯΄λ κ²½μ°μ μλ₯Ό κΈ°λ‘νλ red λ°°μ΄μ,
green λ°°μ΄κ³Ό blue λ°°μ΄μ μ΄μ μμΉ μ€ λ μμ μλ₯Ό 골λΌμ λνμ¬ μ μ₯ν΄μ£Όλ©΄ λλ€. - λΉ¨κ°μλΏλ§ μλλΌ μ΄λ‘, νλμ κ²½μ°μλ λ§μ°¬κ°μ§λ‘ μμ μνκ³Ό κ°μ΄ λ°λ³΅νλ©΄ λλ€.
- κ·Έλ¦¬κ³ κ·Έ μΈλ‘, 첫 λ²μ§Έ μ§μ μ΄μ μ§κ³Ό λΉκ΅ν μ μμΌλ―λ‘, νΉλ³ν μ°μ° μμ΄
λ°λ‘ red, green, blue λ°°μ΄μ λͺ¨λ ν΄λΉ μκΉ κ°μ μ μ₯ν΄μ£Όλ©΄ λλ€.
[μ½λ μ€λͺ ]
- κ°κ° red, blue, κ·Έλ¦¬κ³ greenμ 골λλ€κ³ νλ κ²½μ°μ μλ₯Ό λ΄μ λ°°μ΄μ μμ±νλ€.
- for λ°λ³΅μΌλ‘ μ§ λ§λ€μ μκΉ κ°κ²©μ λ°μμ€λ©΄μ λ°λ‘λ°λ‘ μ°μ°μ μ§ννλ€.
- iκ° 0μΌ κ²½μ°, 첫 λ²μ§Έ μ§μ μλ―Ένλ―λ‘ μ΄ λλ κ° λ°°μ΄μ ν΄λΉ κ°κ²©μ κ·Έλλ‘ λ£μ΄μ£Όμλ€.
- κ·Έ μΈμ κ²½μ°μλ κ° μκΉλ³λ‘ μμμ μ€λͺ ν νμ΄μκ°μ μ°μ°μ μ€ννλ€.
π‘ νΌλλ°±
- λ°λ‘ μ μ νμλ λ¬Έμ μ μ λ§ μ μ¬ν΄μ κΈλ°© ν μ μμκ³ ,
μ΄λ¬ν μ νμ λ¬Έμ κ° μλ€λ κ²μ 곡λΆν μ μμλ€.
λΉμ·ν λ¬Έμ λ€μ λ λ§μ΄ νμ΄λ³΄λ©΄ μ΅μν΄μ§ μ μμ κ² κ°λ€.
λ¬Έμ