쥐수의 공부노트

백준 5430번 AC 본문

swift 알고리즘/큐, 덱

백준 5430번 AC

쥐수 2023. 6. 16. 14:43
728x90

정답 :

let n = Int(readLine()!)!

for _ in 0..<n {
    let str = readLine()!
    let num = Int(readLine()!)!
    var array = readLine()!.dropFirst().dropLast().split(separator: ",").map{String($0)}
    var head = 0
    var check = false
    var tail = array.count
    
    for i in str {
        if i == "R" {
            if check {
                check = false
            } else {
                check = true
            }
        }
        if i == "D" {
            if check {
                tail -= 1
            }
            else {
                head += 1
            }
        }
        if head > tail {
            break
        }
    }
    if head > tail {
        print("error")
    }
    else {
        if check {
            print("[\(array[head..<tail].reversed().joined(separator: ","))]")
        } else {
            print("[\(array[head..<tail].joined(separator: ","))]")
        }
    }
}
더보기

TMI : 어떤 방식으로 풀어야 하는지는 감이 왔지만, 실천에 옮기지 못했다.. 그래도 찾아보면서 풀게 되었다!

728x90

'swift 알고리즘 > 큐, 덱' 카테고리의 다른 글

백준 1021번 회전하는 큐  (0) 2023.06.16
백준 10866번 덱  (0) 2023.06.14
백준 11866번 요세푸스 문제 0  (0) 2023.06.13
백준 2164번 카드2  (1) 2023.06.13
백준 18258번 큐 2  (0) 2023.06.12