상세 컨텐츠

본문 제목

백준 2252: 줄 세우기 (Swift)

Swift알고리즘

by 앱등개발자IOS 2022. 5. 23. 11:51

본문

위상정렬의 기본 문제!

위상정렬은 기본적으로 deque을 이용한다.

First-In-First-Out

 

파이썬에서는 from collections import deque를 통해 가져온 deque로 append, popleft()를 사용할 수 있었으나,

Swift에서는 기본적으로 제공해주는 deque가 없기 때문에, 

Array에 원소들을 넣으며, 현재 popleft하고( 했다 치고 ..) 맨 아래 바닥에 있는 원소가 누구인지 가리키는 idx 변수를 사용한다.

while 문 종료조건은 Array.count > idx가 깨지는 순간이다! 

 

Array의 count는 1에서, idx는 0에서 시작하므로, 새로 q에 들어온 원소의 수가 pop 한 원소 수보다 크거나 같으면 while문은 계속 돌아가게 된다!! ( python의 deque를 쓰다가 이러한 방법으로 구현하니 좀 더 컴공스러운 느낌(?)...이 매력있는 것 같다 ^^)

관련글 더보기