[μ€μννΈ μκ³ λ¦¬μ¦] νλ‘κ·Έλλ¨Έμ€: μ§μ§μ΄ μ κ±°νκΈ°
λ¬Έμ
μ§μ§μ΄ μ κ±°νκΈ°λ, μνλ²³ μλ¬Έμλ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ κ°μ§κ³ μμν©λλ€. λ¨Όμ λ¬Έμμ΄μμ κ°μ μνλ²³μ΄ 2κ° λΆμ΄ μλ μ§μ μ°Ύμ΅λλ€. κ·Έλ€μ, κ·Έ λμ μ κ±°ν λ€, μλ€λ‘ λ¬Έμμ΄μ μ΄μ΄ λΆμ λλ€. μ΄ κ³Όμ μ λ°λ³΅ν΄μ λ¬Έμμ΄μ λͺ¨λ μ κ±°νλ€λ©΄ μ§μ§μ΄ μ κ±°νκΈ°κ° μ’ λ£λ©λλ€. λ¬Έμμ΄ Sκ° μ£Όμ΄μ‘μ λ, μ§μ§μ΄ μ κ±°νκΈ°λ₯Ό μ±κ³΅μ μΌλ‘ μνν μ μλμ§ λ°ννλ ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ. μ±κ³΅μ μΌλ‘ μνν μ μμΌλ©΄ 1μ, μλ κ²½μ° 0μ 리ν΄ν΄μ£Όλ©΄ λ©λλ€.
μλ₯Ό λ€μ΄, λ¬Έμμ΄ S = baabaa λΌλ©΄
b aa baa → bb aa → aa →
μ μμλ‘ λ¬Έμμ΄μ λͺ¨λ μ κ±°ν μ μμΌλ―λ‘ 1μ λ°νν©λλ€.
μ νμ¬ν
- λ¬Έμμ΄μ κΈΈμ΄ : 1,000,000μ΄νμ μμ°μ
- λ¬Έμμ΄μ λͺ¨λ μλ¬Έμλ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
νμ΄
μ€νμ μ¬μ©ν΄μ λ¬Έμκ° λμ¬ λλ§λ€ μ€νμ μ μΌ λμ λ€μ΄μλ λ¬Έμλ©΄ μ€νμμ λ¬Έμλ₯Ό λΉΌμ μμ μ£Όκ³ μλ κ²½μ°μλ μ€νμ κ³μ μ§μ΄λ£μ΅λλ€. λ§μ§λ§κΉμ§ κ²μ¬νμ λ μ€νμ΄ λΉμ§ μκ³ λ¬Έμκ° λ¨μμλ€λ©΄ λ μ΄μ μ€μΌ μ μκΈ° λλ¬Έμ falseλ₯Ό λ°ννκ³ , μ€νμ΄ λΉ κ²½μ°μλ λͺ¨λ μ§μ΄ λ§μΌλ―λ‘ trueλ₯Ό λ°νν©λλ€.
μ½λ
import Foundation
func solution(_ s:String) -> Int{
var stack: [Character] = []
for c in s {
if !stack.isEmpty && stack.last! == c {
stack.removeLast()
} else {
stack.append(c)
}
}
return stack.isEmpty ? 1 : 0
}