반응형
○
스택 Silver 4
백준 10773 제로
K개의 줄에 정수가 하나씩 주어질 때마다, 해당 정수를 push 해주고 0일 경우 pop 해주면 되는 간단한 문제.
정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다. 라고 되어 있어 딱히 옵셔널 처리도 안해줘도 됨.
let k = Int(readLine()!)!
var stack: [Int] = []
for _ in 0..<k {
let input = Int(readLine()!)!
if input == 0 {
stack.removeLast()
} else {
stack.append(input)
}
}
print(stack.reduce(0, +))
백준 9012 괄호
괄호들이 유효한 쌍들로 이루어져 있는지 확인하는 문제.
"(" 가 들어오면 push
")"가 들어오면 앞에 "(" 가 있는지 확인하고 pop 해주면 됨.
let T = Int(readLine()!)!
for _ in 0..<T {
let input = readLine()!
print(isValidParenthesisString(input))
}
func isValidParenthesisString(_ input: String) -> String {
var stack: [Character] = []
for i in input {
if i == "(" {
stack.append(i)
} else {
if stack.last == "(" {
stack.removeLast()
} else {
return "NO"
}
}
}
return stack.isEmpty ? "YES" : "NO"
}
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Swift 알고리즘] 백준 1874 스택 수열 (0) | 2023.03.11 |
---|---|
[Swift 알고리즘] 백준 4949 균형잡힌 세상 (0) | 2023.03.08 |
[Swift 알고리즘] 백준 10828 스택 (0) | 2023.03.07 |
[Swift 알고리즘] 백준 2644 촌수계산 (0) | 2023.01.17 |
[Swift 알고리즘] 백준 2178 미로 탐색 (0) | 2023.01.13 |