-
[백준] 18258 큐 2 - SwiftiOS/Swift 2022. 6. 10. 16:40
문제분석
문제 자체는 매우 간단하다. 큐를 구현해서 입력으로 주어지는 query에 대해서 큐 연산을 처리하면 된다.
하지만 Swift로 이 문제를 해결할 때에는 몇가지 주의사항이 있다.
- Swift는 표준입출력이 느리다.
- Array의 removeFirst()의 시간복잡도는 O(N)이다.
1번으로 인해서 입출력에 대한 처리를 해 주어야 하고,
2번으로 인해서 효율적인 큐를 구현할 방법을 생각해야 한다.잔인할 정도로 많은 시도횟수 위 주의사항 때문에 이 문제를 Swift로 해결하기 매우 까다롭다.
첫 번째 사항에 대해서는 아래 gist의 글을 참고하면 된다. 이해는 하기 어려울 것이다.
https://gist.github.com/JCSooHwanCho/30be4b669321e7a135b84a1e9b075f88#file-usage-swift
ps할 때 입력을 한꺼번에 받기 위한 유틸리티 클래스. fread의 swift 버전.
ps할 때 입력을 한꺼번에 받기 위한 유틸리티 클래스. fread의 swift 버전. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
두 번째 사항에 대해서는 아래 블로그의 내용을 공부한 뒤 효율적인 큐를 구현하면 된다.
https://iamcho2.github.io/2021/10/04/Swift-dequeue
Swift로 효율적인 dequeue 구현하기 (포인터, 투스택 큐)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 Swift로 효율적인 dequeue 구현하기 for 코테 Swift는 Queue가 구현이 되어 있지
iamcho2.github.io
'iOS > Swift' 카테고리의 다른 글
[Swift] Protocol에서 Method dispatch (0) 2022.08.21 [Swift] Method dispatch와 V-Table (0) 2022.08.20 [Swift Grammar] Guard구문에서의 non-Optional 선언 (0) 2022.05.11 [TIL] 참조와 캡쳐 (0) 2022.01.11 [TIL] COW(Copy on Write) (0) 2022.01.10