Archive/Questions

[programmers/Swift] 짝지어 제거하기

Marco 2022. 5. 26. 16:17
728x90

programmers.co.kr - 코딩테스트연습 - Lv.2 - 2017 팁스타운 - 짝지어 제거하기

 

코딩테스트 연습 - 짝지어 제거하기

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙

programmers.co.kr

Constraints :

  • 문자열의 길이 : 1,000,000이하의 자연수
  • 문자열은 모두 소문자로 이루어져 있습니다.

 

Solution.swift :

//
//  Created by Yongwoo Marco on 2022/05/26.
//  Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//

func solution(_ s:String) -> Int{
    var stack = [String.Element]()
    
    for element in s {
        if let last = stack.last, last == element {
            stack.removeLast()
        } else {
            stack.append(element)
        }
    }
    
    return stack.count > 0 ? 0 : 1
}

print(solution("baabaa"))   // 1
print(solution("cdcd"))     // 0

How I tried this :
괄호 문제처럼 스택으로 접근했다.

다행히 효율성 테스트까지 통과했다.

 

문제에 관한 모든 저작권 : https://programmers.co.kr/

728x90