Python3 λ‘ νμλ λ¬Έμ λ₯Ό Swift λ‘ λ€μ νμ΄λ΄€μ΄μ. iOS κ°λ°μ μ’λ ν¨μ¨μ μΌλ‘ νκΈ°μν΄μ Swift λ°μ΄ν°κ΅¬μ‘°, μκ³ λ¦¬μ¦ κ³΅λΆμ νμμ±μ λκΌμ΅λλ€. π€ 'μμ₯' λ¬Έμ μ λν μ κ·Ό λ°©λ²μ μ΄μ ν¬μ€ν μ μ°Έκ³ ν΄μ£ΌμΈμ~
βοΈ Dictionary λ₯Ό μ΄μ©ν νμ΄ λ°©λ²
μ€νμ΄κ° κ°μ§ μμλ€μ΄ λ΄κΈ΄ 2μ°¨μ λ°°μ΄ clothes μ [μμμ μ΄λ¦, μμμ μ’ λ₯] ννλ‘ λμ΄μμ΅λλ€.
μ¬κΈ°μ μμμ μ΄λ¦μ μ€λ³΅λμ§ μκ³ , μμμ μ’ λ₯λ μ€λ³΅λ μ μμ΅λλ€. π
λ¨Όμ , [μμμ μ’ λ₯(String): μμμ κ°μ(Int)] ννλ‘ λμ λ리λ₯Ό μ΄κΈ°νν΄μ€¬μ΄μ!
- μμμ μ΄λ¦μ μ€λ³΅λμ§ μμΌλ―λ‘ κ°μλ§ μΈλ©΄ λ©λλ€.
- μμμ μ’ λ₯λ μ€λ³΅λ μ μμΌλ―λ‘ key κ° μ‘΄μ¬νμ§ μμΌλ©΄ 0μΌλ‘ μ΄κΈ°νλ₯Ό νκ³ , μ‘΄μ¬νλ©΄ 1μ λνμ΅λλ€.
μμμ μ’ λ₯μ ν΄λΉνλ κ°μλ₯Ό ꡬν λ€μλ, μ΄ κ°λ€μ ν΅ν΄ μ 체 μ‘°ν©μ κ°μλ₯Ό ꡬνμ΅λλ€.
- μμμ κ°μκ° A, B, C λΌλ©΄ -> μ 체 μ‘°ν©μ κ°μλ (A+1) * (B+1) * (C+1) - 1 μ λλ€.
- νλμ© μ λ κ²½μ°λ ν¬ν¨νκΈ° μν΄μ num + 1 μ κ°μ κ³±νμ΅λλ€.
- 1 μ λΉΌμ£Όλ μ΄μ λ, 곡μ§ν©(μ·μ μμ λκ²½μ°(?))μ μ μΈνκΈ° μν¨μ λλ€.
μ 체 μ½λλ λ€μκ³Ό κ°μ΅λλ€.
import Foundation
func solution(_ clothes:[[String]]) -> Int {
// λμ
λ리 μ΄κΈ°ν
var clothesDict : [String: Int] = [:]
for cloth in clothes {
let key = cloth[1]
if !clothesDict.keys.contains(key) {
clothesDict[key] = 0
}
clothesDict[key]? += 1
}
// μλ‘ λ€λ₯Έ μ·μ μ‘°ν©μ κ°μ ꡬνκΈ°
var count = 1
for num in clothesDict.values {
count *= (num + 1)
}
return count-1
}
βοΈ Map, Filter, Reduce λ₯Ό μ΄μ©ν νμ΄ λ°©λ²
λ€λ₯Έ νμ΄λ νμ΅νκ³ μΆμ΄μ νλ‘κ·Έλλ¨Έμ€ νμ΄μ μλ¨μ μλ νμ΄λ₯Ό μ°Έκ³ νμ΅λλ€.
λ¨Όμ , compactMap ν¨μλ₯Ό ν΅ν΄μclothes λ°°μ΄μμ μμμ μ’ λ₯λ§ λ°λ‘ λ°°μ΄λ‘ λ§λ€μ΄μ€λλ€.
Set μλ£νμΌλ‘ λ§λ μ΄μ λ μμμ μ’ λ₯μ μ€λ³΅μ μ κ±°νκΈ° μν©μ λλ€.
π‘ map, compactMap
map μ μ£Όμ΄μ§ κ°μ νλμ© λ§€ννλλ° μ΄μ©νλ ν¨μμ λλ€.
compactMap μ map κ³Ό κ°μ μν μ νμ§λ§ nil μ μ κ±°νκ³ μ΅μ λ λ°μΈλ©μ ν΄μ£Όλ ν¨μμ λλ€.
μ΄ν, μμ μ’ λ₯μ ν΄λΉνλ κ°μλ₯Ό μΈκΈ° μν΄μ map, filter ν¨μλ₯Ό μ΄μ©ν©λλ€.
counts λ°°μ΄μ κ° μμμ κ°μ μμ μ’ λ₯μ κ°μμ 1μ λν κ°μ λλ€.
λ§μ§λ§μΌλ‘, μ 체 μμμ μ‘°ν© κ°μλ₯Ό ꡬνκΈ° μν΄μ reduce ν¨μλ₯Ό μ΄μ©ν©λλ€.
counts λ°°μ΄μ λ°λ³΅νλ©° κ° μμλ€μ κ³±ν΄μ£Όκ³ , 1μ λΉΌμ£Όλ κ³Όμ κ³Ό κ°μ΅λλ€.