λ°μν
νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
κ°μ₯ κ°κΉμ΄ κ°μ κΈμ
λ¬Έμ μ€λͺ
λ¬Έμμ΄ sκ° μ£Όμ΄μ‘μ λ, sμ κ° μμΉλ§λ€ μμ λ³΄λ€ μμ λμμΌλ©΄μ, μμ κ³Ό κ°μ₯ κ°κΉμ΄ κ³³μ μλ κ°μ κΈμκ° μ΄λ μλμ§ μκ³ μΆμ΅λλ€.
μλ₯Ό λ€μ΄, s="banana"λΌκ³ ν λ, κ° κΈμλ€μ μΌμͺ½λΆν° μ€λ₯Έμͺ½μΌλ‘ μ½μ΄ λκ°λ©΄μ λ€μκ³Ό κ°μ΄ μ§νν μ μμ΅λλ€.
- bλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- aλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- nμ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- aλ μμ λ³΄λ€ λ μΉΈ μμ aκ° μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
- nλ μμ λ³΄λ€ λ μΉΈ μμ nμ΄ μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
- aλ μμ λ³΄λ€ λ μΉΈ, λ€ μΉΈ μμ aκ° μμ΅λλ€. μ΄ μ€ κ°κΉμ΄ κ²μ λ μΉΈ μμ΄κ³ , μ΄λ 2λ‘ ννν©λλ€.
λ°λΌμ μ΅μ’
κ²°κ³Όλ¬Όμ [-1, -1, -1, 2, 2, 2]κ° λ©λλ€.
λ¬Έμμ΄ sμ΄ μ£Όμ΄μ§ λ, μμ κ°μ΄ μ μλ μ°μ°μ μννλ ν¨μ solutionμ μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- 1 ≤ sμ κΈΈμ΄ ≤ 10,000
- sμ μμ΄ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
μ μΆλ ₯ μ
s | result |
"banana" | [-1, -1, -1, 2, 2, 2] |
"foobar" | [-1, -1, 1, -1, -1, -1] |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- μ§λ¬Έκ³Ό κ°μ΅λλ€.
μ μΆλ ₯ μ #2
- fλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- oλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- oλ μμ λ³΄λ€ ν μΉΈ μμ oκ° μμ΅λλ€. μ΄λ 1λ‘ ννν©λλ€.
- bλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- aλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
- rμ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
μ μΆ
import Foundation
func solution(_ s:String) -> [Int] {
var dic = [String: Int]()
var result = [Int]()
let s = s.map{String($0)}
for i in 0..<s.count{
if dic[s[i]] == nil{
result.append(-1)
}else{
result.append(i-dic[s[i]]!)
}
dic[s[i]] = i
}
return result
}
μνλ²³μ keyλ‘ μνλ²³μ μμΉλ₯Ό valueλ‘ κ°λ λμ λ리 dicμ μ μΈνλ€.
κ²°κ΄κ°μ λ΄μ λ°°μ΄ resultλ₯Ό μ μΈνκ³ , λ¬Έμμ΄ sλ₯Ό λ°°μ΄λ‘ λ³ννλ€.
iλ₯Ό 0λΆν° sμ ν¬κΈ°κΉμ§ 1μ© μ¦κ°μν€λ©° λ°λ³΅νλ€.
keyκ° sμ iλ²μ§Έ μμμΈ κ°μ΄ nilμ΄λΌλ©΄, μ²μ λ±μ₯ν μνλ²³μ΄κΈ° λλ¬Έμ result λ°°μ΄μ -1μ μΆκ°νλ€.
nilμ΄ μλλΌλ©΄ νμ¬ μμΉμΈ iμμ μ΄μ μμΉμΈ dic [s [i]]λ₯Ό λΊ ν, result λ°°μ΄μ μΆκ°νλ€.
dic [s [i]]μ valueλ₯Ό iλ‘ μ μ₯νλ€.
λ€λ₯Έ νμ΄
import Foundation
func solution(_ s: String) -> [Int] {
return s.enumerated().map { (i, c) in i - (Array(s)[0..<i].lastIndex(of: c) ?? i + 1) }
}
λ¬Έμμ΄ sλ₯Ό enumerated() λ©μλλ₯Ό μ¬μ©νμ¬ index iμ λ¬Έμ cλ‘ λλλ€.
map ν¨μλ₯Ό μ¬μ©νμ¬ i - (λ¬Έμμ΄ sμμ 0λΆν° iκΉμ§ λ¬Έμ cλ₯Ό κ°κ³ μμΌλ©΄ λ§μ§λ§ μΈλ±μ€λ₯Ό, μμΌλ©΄ i+1 ) μ°μ°μ ν ν λ°ννλ€.
(ex - bananaμΈ κ²½μ° iκ° 2μ΄κ³ cκ° nμΌ λ, sμ μΈλ±μ€ 0λΆν° 2κΉμ§μλ nμ΄ μ‘΄μ¬νμ§ μκΈ° λλ¬Έμ 2-(2+1)λ‘ -1μ λ°ννλ€.
bananaμΈ κ²½μ° iκ° 3μ΄κ³ cκ° aμΌ λ, sμ μΈλ±μ€ 0λΆν° 3κΉμ§μλ aκ° 1λ²μ§Έ μΈλ±μ€μ μ‘΄μ¬νκΈ° λλ¬Έμ 3-1λ‘ 2λ₯Ό λ°ννλ€.)
λ°μν
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 κ°μΈμ 보 μμ§ μ ν¨κΈ°κ° (0) | 2023.03.17 |
---|---|
[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 ν¬κΈ°κ° μμ λΆλΆλ¬Έμμ΄ (0) | 2023.03.17 |
[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 λ¬Έμμ΄ λλκΈ° (0) | 2023.03.16 |
[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ μμ μ λΉ (1) (0) | 2023.03.15 |
[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 κΈ°μ¬λ¨μμ 무기 (0) | 2023.03.15 |