λ¬Έμ μ€λͺ
μ΄λ€ λλΌμ Nκ°μ λμκ° μλ€. μ΄ λμλ€μ μΌμ§μ λλ‘ μμ μλ€. νΈμμ μΌμ§μ μ μν λ°©ν₯μΌλ‘ λμ. μ μΌ μΌμͺ½μ λμμμ μ μΌ μ€λ₯Έμͺ½μ λμλ‘ μλμ°¨λ₯Ό μ΄μ©νμ¬ μ΄λνλ €κ³ νλ€. μΈμ ν λ λμ μ¬μ΄μ λλ‘λ€μ μλ‘ κΈΈμ΄κ° λ€λ₯Ό μ μλ€. λλ‘ κΈΈμ΄μ λ¨μλ kmλ₯Ό μ¬μ©νλ€.
μ²μ μΆλ°ν λ μλμ°¨μλ κΈ°λ¦μ΄ μμ΄μ μ£Όμ μμμ κΈ°λ¦μ λ£κ³ μΆλ°νμ¬μΌ νλ€. κΈ°λ¦ν΅μ ν¬κΈ°λ 무μ νμ΄μ΄μ μΌλ§λ μ§ λ§μ κΈ°λ¦μ λ£μ μ μλ€. λλ‘λ₯Ό μ΄μ©νμ¬ μ΄λν λ 1kmλ§λ€ 1리ν°μ κΈ°λ¦μ μ¬μ©νλ€. κ° λμμλ λ¨ νλμ μ£Όμ μκ° μμΌλ©°, λμ λ§λ€ μ£Όμ μμ 리ν°λΉ κ°κ²©μ λ€λ₯Ό μ μλ€. κ°κ²©μ λ¨μλ μμ μ¬μ©νλ€.
μλ₯Ό λ€μ΄, μ΄ λλΌμ λ€μ κ·Έλ¦Όμ²λΌ 4κ°μ λμκ° μλ€κ³ νμ. μ μμ μλ μ«μλ κ·Έ λμμ μλ μ£Όμ μμ 리ν°λΉ κ°κ²©μ΄λ€. λλ‘ μμ μλ μ«μλ λλ‘μ κΈΈμ΄λ₯Ό νμν κ²μ΄λ€.
μ μΌ μΌμͺ½ λμμμ 6리ν°μ κΈ°λ¦μ λ£κ³ , λ μ΄μμ μ£Όμ μμ΄ μ μΌ μ€λ₯Έμͺ½ λμκΉμ§ μ΄λνλ©΄ μ΄ λΉμ©μ 30μμ΄λ€. λ§μ½ μ μΌ μΌμͺ½ λμμμ 2리ν°μ κΈ°λ¦μ λ£κ³ (2×5 = 10μ) λ€μ λ² λμκΉμ§ μ΄λν ν 3리ν°μ κΈ°λ¦μ λ£κ³ (3×2 = 6μ) λ€μ λμμμ 1리ν°μ κΈ°λ¦μ λ£μ΄(1×4 = 4μ) μ μΌ μ€λ₯Έμͺ½ λμλ‘ μ΄λνλ©΄, μ΄ λΉμ©μ 20μμ΄λ€. λ λ€λ₯Έ λ°©λ²μΌλ‘ μ μΌ μΌμͺ½ λμμμ 2리ν°μ κΈ°λ¦μ λ£κ³ (2×5 = 10μ) λ€μ λ² λμκΉμ§ μ΄λν ν 4리ν°μ κΈ°λ¦μ λ£κ³ (4×2 = 8μ) μ μΌ μ€λ₯Έμͺ½ λμκΉμ§ μ΄λνλ©΄, μ΄ λΉμ©μ 18μμ΄λ€.
κ° λμμ μλ μ£Όμ μμ κΈ°λ¦ κ°κ²©κ³Ό, κ° λμλ₯Ό μ°κ²°νλ λλ‘μ κΈΈμ΄λ₯Ό μ λ ₯μΌλ‘ λ°μ μ μΌ μΌμͺ½ λμμμ μ μΌ μ€λ₯Έμͺ½ λμλ‘ μ΄λνλ μ΅μμ λΉμ©μ κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
νμ€ μ λ ₯μΌλ‘ λ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. 첫 λ²μ§Έ μ€μλ λμμ κ°μλ₯Ό λνλ΄λ μ μ N(2 ≤ N ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ μΈμ ν λ λμλ₯Ό μ°κ²°νλ λλ‘μ κΈΈμ΄κ° μ μΌ μΌμͺ½ λλ‘λΆν° N-1κ°μ μμ°μλ‘ μ£Όμ΄μ§λ€. λ€μ μ€μλ μ£Όμ μμ 리ν°λΉ κ°κ²©μ΄ μ μΌ μΌμͺ½ λμλΆν° μμλλ‘ Nκ°μ μμ°μλ‘ μ£Όμ΄μ§λ€. μ μΌ μΌμͺ½ λμλΆν° μ μΌ μ€λ₯Έμͺ½ λμκΉμ§μ 거리λ 1μ΄μ 1,000,000,000 μ΄νμ μμ°μμ΄λ€. 리ν°λΉ κ°κ²©μ 1 μ΄μ 1,000,000,000 μ΄νμ μμ°μμ΄λ€.
μΆλ ₯
νμ€ μΆλ ₯μΌλ‘ μ μΌ μΌμͺ½ λμμμ μ μΌ μ€λ₯Έμͺ½ λμλ‘ κ°λ μ΅μ λΉμ©μ μΆλ ₯νλ€.
μ μΆλ ₯ μμ
μ λ ₯
4
2 3 1
5 2 4 1
μΆλ ₯
18
λ΄ λ¬Έμ νμ΄
import Foundation
let N = Int(readLine()!)!
let distance = readLine()!.split(separator: " ").map({Int(String($0))!})
let city = readLine()!.split(separator: " ").map({Int(String($0))!})
var min = city[0]
var price = city[0] * distance[0]
var d = 0
for i in 1..<city.count-1 {
d += 1
if city[i] < min { min = city[i] }
price += min * distance[d]
}
print(price)
π ν λμμμ λ€μ λμλ‘ λμ΄κ° λλ§λ€, μ΅μ κΈ°λ¦κ°μ κ°±μ ν΄μ£Όλ©°
λμ...λμ 거리λ§λ€ μ΅μ κΈ°λ¦κ°μ κ³±ν΄μ€ κ°μ λμ ν΄μ£Όλ λ°©μμΌλ‘ νμ΄νλ€.
- μ΅μκ°κ³Ό κ΄κ³μμ΄ μ²« λ²μ§Έ λμμμ μΆλ°ν λλ μ΄μ°¨νΌ 첫 λ²μ§Έ λμ κΈ°λ¦κ°μΌλ‘ μ£Όμ ν΄μΌνκΈ° λλ¬Έμ,
μ°μ priceμ (첫 λ²μ§Έ λμ κΈ°λ¦κ° * 첫 λ²μ§Έ...λ λ²μ§Έ 거리)λ₯Ό μ μ₯ν΄μ£Όμλ€. - 첫 λ²μ§Έ λμμμ νμν κΈ°λ¦κ°μ μ΄λ―Έ λμ νκ³ , λ§μ§λ§ λμμμλ λμ΄μ μ£Όμ ν νμκ° μκΈ° λλ¬Έμ
1..<city.count-1λ‘ forλ¬Έμ λ²μλ₯Ό μ§μ ν΄μ£Όμλ€. - λ€μ λμλ‘ λμ΄μμ λ, μ΄μ λμλ³΄λ€ κΈ°λ¦κ°μ΄ μ λ€λ©΄ minμ μ λ°μ΄νΈν΄μ£Όμλ€.
- priceμλ μ λ°μ΄νΈλ minκ°κ³Ό ν΄λΉ λμμμ λ€μ λμλ‘ μ΄μ΄μ§λ 거리λ₯Ό κ³±νμ¬ λμ ν΄μ£Όμλ€.
π‘ νΌλλ°±
- μ²μμ κ°κ²©, 거리 λ± μκ°ν κ² λ§μ보μλ λ¬Έμ μ§λ§, κ·Έλ₯ κΈ°λ¦κ°μ μ΅μλ§ κ³ λ €ν΄μ£Όλ©΄ λλ κ°λ¨ν λ¬Έμ μλ€.
λ¬Έμ
'3οΈβ£ Swift > Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift Algorithm] μΉ΄λ ν©μ²΄ λμ΄ BOJ #15903 (0) | 2021.08.22 |
---|---|
[Swift Algorithm] λ©ν°ν μ€μΌμ€λ§ BOJ #1700 (0) | 2021.08.20 |
[Swift Algorithm] νλ¦°ν° Programmers(Lv.2) (0) | 2021.08.19 |
[Swift Algorithm] λ€μ§κΈ° BOJ #1439 (0) | 2021.08.19 |
[Swift Algorithm] μ λ¬ΆκΈ° BOJ #1744 (0) | 2021.08.19 |
λκΈ