Programming/Algorithm & Data Structure
[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기
guswlsdk
2022. 5. 27. 11:32
반응형
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
문제풀이
스택을 이용하면 O(n)으로 해결 할 수 있다.
정확성과 효율성이 나뉘는 문제인데 정확성은 해결됐지만 효율성은 여러 시도가 있었다.
문자열을 배열 형태로 바꿔주는 방식도 map을 이용하면 시간초과가 난다. Array(s)를 이용하니 효율성도 해결되었다.
코드
import Foundation
func solution(_ s:String) -> Int{
let sArr = Array(s)
var stack = [Character]()
for i in sArr{
if !stack.isEmpty && stack.last == i{
stack.removeLast()
}else{
stack.append(i)
}
}
return stack.isEmpty ? 1 : 0
}
반응형