백준 - 카드2 (2164)

Seoyoung Lee·2023년 1월 20일
0

알고리즘

목록 보기
13/104
post-thumbnail
struct Queue<T> {
    var input: [T] = []
    var output: [T] = []
    
    var isEmpty: Bool {
        return input.isEmpty && output.isEmpty
    }
    
    var count: Int {
        return input.count + output.count
    }
    
    mutating func enqueue(_ element: T) {
        input.append(element)
    }
    
    mutating func delete() -> T {
        if output.isEmpty {
            output = input.reversed()
            input.removeAll()
        }
        return output.removeLast()
    }
}

let N = Int(readLine()!)!
var queue = Queue<Int>()
queue.input = Array(1...N)

while queue.count > 1 {
    queue.delete()
    let number = queue.delete()
    queue.enqueue(number)
}

print(queue.delete())

스위프트는 큐 자료구조가 없어서 dudu님의 코드를 사용해서 구현했다.

profile
나의 내일은 파래 🐳

0개의 댓글