[프로그래머스] 괄호 회전하기 - Swift

이창형·2023년 3월 16일
0

코드

func solution(_ s:String) -> Int {
    var str = Array(s)
    var answer = 0
    
    // 괄호가 완성되는지 체크
    func check(_ array:Array<Character>) -> Bool {
        var checkArray = [Character]()
        
        let braces: [Character:Character] = ["{":"}", "[":"]", "(":")"]
        
        for i in array {
            if !checkArray.isEmpty && braces[checkArray.last!] == i  {
                checkArray.removeLast()
            } else {
                checkArray.append(i)
            }
        }
        return checkArray.isEmpty
    }
    for _ in str {
        str.append(str.removeFirst())
        
        if check(str) {
            answer += 1
        }
    }
 
    return answer
}

회고

  • check 함수를 만들어서 검사할 생각을 못해 구글링을 하여 참고하였다
  • array에 array.append(array.removeFirst())를 하면 젤 앞의 원소가 빠지면서 뒤로 추가되는 것을 알게 되었다
profile
iOS Developer

0개의 댓글