728x90
[Swift] 프로그래머스 올바른 괄호(lv. 2)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12909
2. 접근
lv. 2 초반이라 lv. 1보다 쉬운 레벨의 것이 나오기도 한다. 스택의 개념을 잘 생각하면 풀 수 있는 문제이다.
스택으로 해서 직접 괄호를 넣었다 뺐다가 할 수도 있지만, count 개념을 넣어서 할 수도 있다.
"(" 가 들어오면 +1을 하고, ")"가 들어오면 -1를 하는 것.
그런데 전체적으로 합쳐지면 ")("도 통과가 될 수도 있기 때문에 )) 와 같은 것을 방지하기 위해서 count가 음수가 되면 false를 리턴하게 하면 예외케이스를 처리할 수 있다. 그리고 count가 0이 아닌 경우, 즉 0 이상인 경우도 false로 처리해야 하기 때문에 마지막 리턴문에서 삼항 연산자로 값을 한 번 더 구분해 주었다.
3. 코드
import Foundation
func solution(_ s:String) -> Bool {
var count = 0
for i in s {
if i == "(" {
count += 1
} else {
count -= 1
if count < 0 {
return false
}
}
}
return count == 0 ? true : false
}
728x90
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 피보나치 수(lv. 2) (0) | 2023.03.03 |
---|---|
[Swift] 프로그래머스 이진 변환 반복하기(lv. 2) (0) | 2023.03.02 |
[Swift] 프로그래머스 최솟값 만들기(lv. 2) (0) | 2023.02.28 |
[Swift] 프로그래머스 JadenCase 문자열 만들기(lv. 2) (2) | 2023.02.27 |
[Swift] 프로그래머스 햄버거 만들기(lv. 1) (0) | 2023.02.25 |
댓글