1966 프린터 큐

Choong Won, Seo·2021년 12월 28일
0

백준

목록 보기
6/28
post-thumbnail

Today 12/28

프린터 큐 (My Code)

for _ in 1...Int(readLine()!)! {
    let NM = readLine()!.split(separator: " ").map{Int(String($0))!}
    var inputArr = Array(repeating:Array(repeating: 1, count: 2), count:NM[0])
    var inputNum = readLine()!.split(separator: " ").map{Int(String($0))!}
    for (index,input) in inputNum.enumerated() {
        inputArr[index][0] = index
        inputArr[index][1] = input
    }
    inputNum.sort(by: >)
    var output = 0
    
    while true {
        if inputArr[0][1] != inputNum[0] {
            inputArr.append(inputArr[0])
            inputArr.remove(at: 0)
        } else {
            output += 1
            inputNum.remove(at: 0)
            if inputArr[0][0] == NM[1] {
                break
            }
            inputArr.remove(at: 0)
        }
    }
    print(output)
}

처음에는 규칙을 생각해서 풀려다가 그냥 queue를 구현해서 풀었다. 2차원 배열을 이용했고, 튜플을 이용해서도 풀 수 있을 것 같았다.

inputNum 배열을 사용하지 않고,

for i in 1..<arr.count {
     if arr[i].1 > arr.first!.1 {
         arr.append(arr.removeFirst())
         flag = true
         break
     }
}

이런 식으로 작을 때 계속 빼줘도 된다고 한다.

profile
UXUI Design Based IOS Developer

0개의 댓글