Archive/Questions

[programmers/Swift] 올바른 괄호

Marco 2022. 5. 23. 08:42
728x90

programmers.co.kr - 코딩테스트연습 - Lv.2 - 연습문제 - 올바른 괄호

Constraints :

  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

 

Solution.swift :

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

func solution(_ s:String) -> Bool {
    var stack = [Character]()

    for char in s {
        if char == Character("(") {
            stack.append(char)
        } else if stack.popLast() == nil {
            return false
        }
    }

    return stack.count > 0 ? false : true
}

print(solution("()()")) // true
print(solution("(())()")) // true
print(solution(")()(")) // false
print(solution("(()(")) // false

How I tried this :
한가지 괄호만 있다면 괄호를 열어 줄 경우 스택에 push 닫히는 경우는 스택 pop을 하는 형태로

괄호를 매칭함

 

매칭이 안되어 스택이 남아있으면 실패, 없으면 성공 형태로 구현

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

728x90