Files
hello-algo/ko/codes/swift/chapter_stack_and_queue/deque.swift
T
Yudong Jin 2f561d3d51 feat(ko): add the Korean online edition (#2006)
* feat(ko): add the complete Korean online edition

* Use UTF-8 for Python CI output on Windows

* Remove print-book promotion from the Korean site

* fix(ko): preserve emphasis before Korean particles
2026-10-29 03:46:43 +08:00

45 lines
1.4 KiB
Swift

/**
* File: deque.swift
* Created Time: 2023-01-14
* Author: nuomi1 ([email protected])
*/
@main
enum Deque {
/* 실행 코드 */
static func main() {
/* 덱 초기화 */
// Swift에는 내장 덱 클래스가 없으므로 Array를 덱으로 사용할 수 있다
var deque: [Int] = []
/* 큐에 원소 삽입 */
deque.append(2)
deque.append(5)
deque.append(4)
deque.insert(3, at: 0)
deque.insert(1, at: 0)
print("덱 deque = \(deque)")
/* 원소 접근 */
let peekFirst = deque.first!
print("맨 앞 원소 peekFirst = \(peekFirst)")
let peekLast = deque.last!
print("맨 뒤 원소 peekLast = \(peekLast)")
/* 큐에서 원소 꺼내기 */
// Array로 구현할 때 popFirst의 시간 복잡도는 O(n)이다
let popFirst = deque.removeFirst()
print("맨 앞에서 꺼낸 원소 popFirst = \(popFirst), 꺼낸 후 deque = \(deque)")
let popLast = deque.removeLast()
print("맨 뒤에서 꺼낸 원소 popLast = \(popLast), 꺼낸 후 deque = \(deque)")
/* 덱의 길이 반환 */
let size = deque.count
print("덱의 길이 size = \(size)")
/* 덱이 비어 있는지 판단 */
let isEmpty = deque.isEmpty
print("덱이 비어 있는가 = \(isEmpty)")
}
}