Algorithm
λ°±μ€ - μ»΅νλ(Swift)
CheonD
2022. 11. 4. 15:09
λ°±μ€ - μ»΅νλ(Swift)
λ¬Έμ μ€λͺ
https://www.acmicpc.net/problem/2810
2810λ²: μ»΅νλ
첫째 μ€μ μ’μμ μ Nμ΄ μ£Όμ΄μ§λ€. (1 ≤ N ≤ 50) λμ§Έ μ€μλ μ’μμ μ λ³΄κ° μ£Όμ΄μ§λ€.
www.acmicpc.net
λμ νμ΄
μ λ ₯μ‘°κ±΄μ΄ μμμ *μ κ·μΉμ λ§κ² μ½μ ν λ€ μ€νμ μ΄μ©ν΄μ μμ΄λ€.
import Foundation
let n = Int(readLine()!)!
var stack = [Character]()
var str = String(readLine()!)
str = str.replacingOccurrences(of: "S", with: "*S*")
str = str.replacingOccurrences(of: "LL", with: "*LL*")
str = str.replacingOccurrences(of: "**", with: "*")
var arr = str.map{$0}
var cnt = 0
for x in arr {
if x == "*" { //μ»΅νλμΌ λ
if !stack.isEmpty {
stack.removeLast()
} else {
cnt += 1
}
} else { // μ¬λμ΄ λ€μ΄μ¬ λ
if cnt > 0 {
cnt -= 1
} else {
stack.append(x)
}
}
}
print(n - stack.count)
λ€λ₯Έ μ¬λμ νμ΄λ₯Ό 보λ μ»΅νλμ μκ° μ¬λμ μλ³΄λ€ μμλλ μ»΅νλμ κ°μκ° λ΅μΈ κ²μ μμλ€.
μ¦ μ»΅νλλ μ΄λκ³³μ μμΉνλ μ λΆ λ€ μ¬μ©μ΄ λλ€λ λ»μ΄λ€.
νμ§λ§ SSSμ²λΌ μ»΅νλκ° μ¬λμλ³΄λ€ λ§μ κ²½μ°λ μ¬λμ μκ° μ»΅νλλ₯Ό μ¬μ©νλ μκ° λλ€.
import Foundation
let n = Int(readLine()!)!
var stack = [Character]()
var str = String(readLine()!)
str = str.replacingOccurrences(of: "S", with: "*S*")
str = str.replacingOccurrences(of: "LL", with: "*LL*")
str = str.replacingOccurrences(of: "**", with: "*")
var arr = str.map{$0}
var cnt = 0
let cupCount = Array(str).filter{$0 == "*"}.count
if cupCount < n {
print(cupCount)
} else {
print(n)
}