(Swift) Programmers 올바른 괄호

SteadySlower·2022년 9월 16일
0

Coding Test

목록 보기
159/305

코딩테스트 연습 - 올바른 괄호

문제 풀이 아이디어

괄호 문제 (뭔가 짝을 맞추어야 하는 모든 문제)는 전형적인 Stack 문제입니다. 여는 괄호가 들어오면 push, 닫는 괄호가 들어오면 pop이 원칙입니다. false를 리턴해야 하는 상황은 아래 3가지 입니다.

  1. pop해야 하는데 stack이 비었을 때
  2. 문자열을 모두 순회했는데 stack이 비어있지 않은 경우

이외의 상황에는 모두 true를 리턴하면 됩니다.

코드

import Foundation

func solution(_ s:String) -> Bool {
    var stack = [Character]()
    
    for p in s {
        if p == "(" {
            stack.append(p)
        } else {
            guard let _ = stack.popLast() else { return false }
			//👉 1. pop 해야하는데 stack이 빈 경우
        }
    }
    return stack.isEmpty ? true : false
	//👉 문자열을 모두 순회했는데 stack이 비어있지 않은 경우
}
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글