티스토리 뷰

PS

[Swift] 백준_앵무새

희철 2023. 1. 6. 14:21

문제

 

https://www.acmicpc.net/problem/14713

 

14713번: 앵무새

자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로

www.acmicpc.net

 

 

풀이

 

당연하게 cseteram이 모든 말을 다 받아적었을거라고 생각해서 오래걸렸다.

 

cseteram이 받아적은 단어들을 큐에 넣고 앵무새들이 말한 문장의 맨 앞 단어와 비교해서 맞을때마다 하나씩 지워주었다. 반복문이 끝나고 앵무새 문장의 배열들과 cseteram이 모두 비어있는 경우에만 Possible을 출력하도록 하였다.

import Foundation

let n = Int(readLine()!)!
var str: [[String]] = []
for _ in 0..<n {
    str.append(readLine()!.split(separator: " ").map { String($0) })
}
var cseteram = readLine()!.split(separator: " ").map { String($0) }
outer: while !cseteram.isEmpty {
    for i in 0..<n {
        if !str[i].isEmpty && str[i][0] == cseteram[0] {
            cseteram.removeFirst()
            str[i].removeFirst()
            continue outer
        }
    }
    break
}
if cseteram.isEmpty {
    var check = true
    for i in 0..<n {
        if !str[i].isEmpty {
            check = false
            break
        }
    }
    check ? print("Possible") : print("Impossible")
} else {
    print("Impossible")
}

 

_____________________________________________________________________________________________________

 

조건에 어긋나지않은 모든 경우를 생각하자

'PS' 카테고리의 다른 글

[Swift] 백준_오아시스 재결합  (0) 2023.01.07
[Swift] 백준_트럭(13335)  (0) 2023.01.06
[Swift] 백준_프린터 큐(1966)  (0) 2023.01.06
[Swift] 백준_문자열 폭발(9935)  (0) 2023.01.05
[Swift] 백준_옥상정원 꾸미기(6198)  (0) 2023.01.05
댓글
최근에 올라온 글
Total
Today
Yesterday