Where who wants to meet someone
백준 Swift [10773] 제로 본문
728x90
난이도
실버 IV
문제
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
내 답안
var accountBook = [Int]()
for _ in 1...Int(readLine()!)! {
let input = Int(readLine()!)!
switch input {
case 0:
accountBook.removeLast()
default:
accountBook.append(input)
}
}
print(accountBook.reduce(0, +))
- 빈 스택인 accountBook 초기화
- 횟수만큼 돌면서 입력값이 0인 것과 0이 아닌(default)것만 분기 처리를 하여 각각 removeLast, append를 수행
(removeLast의 복잡도는 O(1)) - for문이 끝나면 reduce를 통해 모든 값을 더한 값을 출력하여 해결

'백준 알고리즘 문제 기록 > 스택, 큐, 덱' 카테고리의 다른 글
| 백준 Swift [2164] 카드2 (0) | 2023.08.25 |
|---|---|
| 백준 Swift [12789] 도키도키 간식드리미 (2) | 2023.08.24 |
| 백준 Swift [4949] 균형잡힌 세상 (0) | 2023.08.22 |
| 백준 Swift [9012] 괄호 (0) | 2023.08.22 |
| 백준 Swift [28278] 스택 2 (0) | 2023.08.22 |