iOS/Swift

[백준] 18258 큐 2 - Swift

miniOS 2022. 6. 10. 16:40

문제분석

문제 자체는 매우 간단하다. 큐를 구현해서 입력으로 주어지는 query에 대해서 큐 연산을 처리하면 된다.

하지만 Swift로 이 문제를 해결할 때에는 몇가지 주의사항이 있다.

  1. Swift는 표준입출력이 느리다.
  2. 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