Algorithm Problem Solving/Programmers

[프로그래머스] 코딩테스트 연습 2017 팁스타운 짝지어 제거하기 with Swift

코코자장자장 2021. 12. 21. 14:04

안녕하세요! 오늘은 프로그래머스 2레벨 짝지어 제거하기 문제를 풀어보겠습니다.

이 문제는 Stack 자료구조를 이용하여 문제를 풀 수 있습니다.

 

Stack은 first in last out구조로 배열로도 쉽게 구현가능하기 때문에 배열로 문제를 해결하였습니다.

 

stack에 입력된 문자열을 하나하나 입력해주면서 직전 입력과 같다변 pop해주게 된다면 문제가 해결됩니다.

 

import Foundation

func solution(_ s:String) -> Int{
    var characterStack: [Character] = [Character]()
    
    for character in s {
        if !characterStack.isEmpty && characterStack.last! == character {
            characterStack.removeLast()
        } else {
            characterStack.append(character)
        }
    }

    if characterStack.isEmpty {
        return 1
    }
    return 0
}

 

오늘은 여기까지이고, 좋은 하루 되세요!