λ°±μ€ - λ¨μ΄μν(Swift)
λ°±μ€ - λ¨μ΄μν(Swift)
λ¬Έμ μ€λͺ
https://www.acmicpc.net/problem/1339
1339λ²: λ¨μ΄ μν
첫째 μ€μ λ¨μ΄μ κ°μ N(1 ≤ N ≤ 10)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μ λ¨μ΄κ° ν μ€μ νλμ© μ£Όμ΄μ§λ€. λ¨μ΄λ μνλ²³ λλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έμλ€. λͺ¨λ λ¨μ΄μ ν¬ν¨λμ΄ μλ μνλ²³μ μ΅λ
www.acmicpc.net
λμ νμ΄
μ²μμλ κ° λ¬Έμμ΄μ countμ λ°λΌμ λμ μμλλ‘ κ°μ λΆμ¬νλ€. μ΄λ κ²νλ©΄ μμ λ€μ μ λΆ λ§μ§λ§ λ°λ‘λ€μ΄ μ‘΄μ¬νλ€.
μλ₯Ό λ€μ΄ ABC, D, Dλ‘ μ£Όμ΄μ‘μλ λ΄κ° ν λ°©μμ A:9, B:8, C:7, D:6μ΄ λλ€. νμ§λ§ Dκ° 7μΈ κ²½μ°κ° μ΅λμ μκ° λλ€.
μ¦ μ΄ λ°©μμ μ λ΅μ΄ λ μ μλ νμ΄μ΄λ€.(λ¬Έμ λ₯Ό κ°κ³Όνλ€.)
κ·Έλμ λ€λ₯Έμ¬λμ νμ΄λ₯Ό λ³΄κ³ μκ² λ μ루μ μ κ° μ리μ μλ₯Ό λμ λ리μ μ μ₯νκ³ ν° κ°λΆν° μ«μλ₯Ό λΆμ¬νλ©΄ λλ κ²μ΄λ€.
μμλ‘ ABAλΌλ κ°μ΄ λ€μ΄μ€κ² λλ€λ©΄ 첫 λ²μ§Έ Aλ 10μ 2μΉ Bλ 10μ 1μΉ μΈ λ²μ§Έ Aλ 10μ 3μΉμ΄ λκ³ Aλ 101, Bλ 10μ΄λλ€.
Aλ Bλ³΄λ€ ν¬κΈ° λλ¬Έμ 9λ₯Ό Bλ 8μ μ£Όμ΄ 101*9 + 10*8 = 989κ° λλ€.
import Foundation
let n = Int(readLine()!)!
var dic: [String: Int] = [:]
for _ in 0..<n {
var word = readLine()!
var val = Int(pow(10, Double(word.count-1)))
for x in word {
if dic[String(x)] == nil {
dic[String(x)] = val
} else {
dic[String(x)]! += val
}
val = val/10
}
}
var result = 0
var cnt = 9
for num in dic.values.sorted(by : >) {
result += cnt * num
cnt -= 1
}
print(result)
νΌλλ°±
μ²μ λ΄ νμ΄(νλ¦° νμ΄)λ₯Ό νλ©΄μ λͺ κ°μ§ μκ² λ μ μ΄ μλ€.
λ¬Έμμ΄ λ°°μ΄μμ λ¬Έμμ΄μ νλμ© μ€μ¬λκ°λ λ§μ§λ§μ μμ΄μ§λ κ²μ΄ μλ ""μΈ μ±λ‘ λ¨μμλ κ²μ΄λ€. κ·Έλμ λ°λ‘ ""κ° λμμλ λ°°μ΄ μ 체μμ removeν μ μλλ‘ μ€μ νλ€.
[["abcd", "efg"]]λΌλ 2μ°¨μ λ°°μ΄μ΄ μμλ flatMapμ νλ©΄ ["abcd", "efg"]κ° λλ€.
readLineμΌλ‘ λ¬Έμμ΄μ λ°μλ κΌ mapμΌλ‘ λ³νλ €κ³ λ Έλ ₯νμ§ λ§μ. λ¬Έμμ΄μ λ°°μ΄λ‘ λ§λλκ² μλ λ¬Έμμ΄ κ·Έλλ‘ νΈλ λ¬Έμ μΌ μλ μλ€. λ무 μ¬κ³ μ νμ μ’νμ§ λ§μμΌ κ² λ€.