9935 swift - 문자열 폭발

2024. 2. 2. 16:27🐣/BOJ

44% 시간초과로 틀린 코드.

import Foundation

var i=readLine()!
let c=readLine()!

while (i.contains(c)) {
    i = i.replacingOccurrences(of: c, with: "")
}

print(i.isEmpty ? "FRULA" : result)


스택으로 재접근하여 문제풀이.

var input = readLine()!
let pattern = readLine()!
var stack = [Character]()

for char in input {
    stack.append(char)
    if stack.count >= pattern.count {
        var isPattern = true
        for (index, patternChar) in pattern.enumerated() {
            if stack[stack.count - pattern.count + index] != patternChar {
                isPattern = false
                break
            }
        }
        if isPattern {
            for _ in 0..<pattern.count {
                stack.removeLast()
            }
        }
    }
}

let result = String(stack)
print(result.isEmpty ? "FRULA" : result)

 

'🐣 > BOJ' 카테고리의 다른 글

1967 swift - 트리의 지름  (0) 2024.02.07
11404 swift - 플로이드  (0) 2024.02.05
9663 swift - N-Queen  (0) 2023.06.12
11444 swift - 피보나치 수 6  (0) 2023.06.11
11521 swift - Boggle  (0) 2023.04.05