알고리즘
[Swift 알고리즘] - 올바른 괄호 (Programmers)
Peppo
2024. 8. 9. 09:48
728x90
오늘의 알고리즘 문제는 Stack / Queue에 관련된 문제였다.
주어진 s에 괄호가 여/닫이 다 되는지 판단하고 답을 내는 문제였고,
풀이는 아래와 같다.
https://school.programmers.co.kr/learn/courses/30/lessons/12909
내 풀이
import Foundation
func solution(_ s:String) -> Bool {
var ans:Bool = false
var tempArr: [String] = []
for bracket in s {
if !tempArr.isEmpty && tempArr[tempArr.endIndex - 1] == "(" && bracket == ")" {
tempArr.removeLast()
} else {
tempArr.append(String(bracket))
}
}
ans = tempArr.isEmpty ? true : false
return ans
}
- ")"를 append 하기전 tempArr 마지막 index에 "(" 가 있으면 pop(removeLast)
- 없으면 push(append)
- 반복문이 종료된 후 tempArr가 비어있지 않으면 짝이 맞는게 없다는거니 return false
처음엔 "("의 갯수와 ")"의 갯수가 같으면 return true | false로 구상을 했다.
하지만 예제를 읽어보니 ")()(" 같은 케이스가 있을 경우 false로 된다해서 생각을 다시했다.
예제로 문제를 먼저 파악하는 경향이 있는데
예제도 꼼꼼히, 문제도 꼼꼼히 보자 !!
728x90