TIL: Swift로 괄호 짝 맞추기

jeongmuyamette·2024년 12월 12일

TIL

목록 보기
17/72
post-thumbnail

TIL: Swift로 괄호 짝 맞추기

오늘은 Swift에서 문자열의 괄호가 올바르게 짝지어졌는지 확인하는 방법을 배웠습니다. 이 방법은 스택을 사용하지 않고, for문과 if문을 활용하여 간단하게 구현할 수 있습니다.

문제 해결 방법

  1. 변수 초기화:

    • balance 변수를 0으로 초기화하여 여는 괄호와 닫는 괄호의 균형을 맞춥니다.
  2. 문자열 순회:

    • 문자열 s의 각 문자를 순회합니다.
  3. 여는 괄호 처리:

    • 문자가 '('이면 balance를 1 증가시킵니다.
  4. 닫는 괄호 처리:

    • 문자가 ')'이면 balance를 1 감소시킵니다.
    • balance가 0보다 작아지면 닫는 괄호가 더 많다는 뜻이므로 false를 반환합니다.
  5. 최종 확인:

    • 모든 문자를 확인한 후 balance가 0이면 괄호가 올바르게 짝지어져 있으므로 true를 반환합니다.
    • 그렇지 않으면 false를 반환합니다.

코드 예시

import Foundation

func solution(_ s: String) -> Bool {
    var balance = 0
    
    for char in s {
        if char == "(" {
            balance += 1
        } else if char == ")" {
            balance -= 1
        }
        
        if balance < 0 {
            return false
        }
    }
    
    return balance == 0
}

// 테스트 케이스
print(solution("()()"))   // true
print(solution("(())()")) // true
print(solution(")()("))   // false
print(solution("(()("))   // false

배운 점

  • 균형 변수 사용: balance 변수를 사용하여 여는 괄호와 닫는 괄호의 수를 추적할 수 있습니다.
  • 효율성: 문자열을 한 번만 순회하여 문제를 해결하므로 매우 효율적입니다.
  • 조건문 활용: 조건문을 통해 간단하게 문제의 조건을 확인할 수 있습니다.

0개의 댓글