나의 기록, 현진록

[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기 본문

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
}

 

반응형