티스토리 뷰
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
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] - 숫자 문자열과 영단어 (Programmers) (0) | 2024.07.31 |
---|---|
[Swift 알고리즘] - 콜라 문제 (Programmers) (0) | 2024.07.26 |
[Swift 알고리즘] - 행렬의 덧셈 (Programmers) (0) | 2024.07.11 |
[Swift 알고리즘] - Valid Parentheses (LeetCode) (0) | 2023.08.24 |
[Swift 알고리즘] - Best Time to Buy and Sell Stock (LeetCode) (0) | 2023.08.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift ModernRIBs
- Swift final
- RIBs tutorial
- Swift 내림차순
- 원티드 프리온보딩
- CS 네트워크
- removeLast()
- Swift init
- Swift 프로그래머스
- Swift 알고리즘
- Swift joined
- Swift Leetcode
- Swift
- Combine: Asynchronous Programming with Swift
- 2023년 회고
- swift protocol
- swift (programmers)
- swift property
- ios
- swift 고차함수
- Swift 프로퍼티
- Swift RIBs
- RTCCameraVideoCapturer
- swift reduce
- swift programmers
- iOS error
- Swift Error Handling
- Swift joined()
- Class
- Swift inout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함