swiftqueue 2

Swift ;; Stack 구현!

Swift에는 Stack 내장함수가 존재하지 않기 때문에 직접 Stack를 구현해서 사용해야 한다. swift 알고리즘 문제 DFS 등을 풀 때 필요한 경우가 있다. 하지만! swift 메서드 중 popLast()와 같은 메서드를 보면, 굳이 Stack을 구현하지 않고 배열을 스택처럼 사용해도 무방하다. 스택은, 프링글스 과자통의 과자를 꺼내먹을 때와 같이 나중에 들어간 원소가 먼저 나오게 된다. 이를 후입선출(LIFO, Last In First Out) 구조라고 한다. 스택의 연산은 삽입(push), 삭제(pop), 원소 보기(peek), count(스택에 들어있는 원소의 개수), isEmpty(스택이 비었는지 여부)로 이루어져 있다. Stack 구현 코드 struct Stack { private va..

iOS/Swift 2023.02.09

Swift ;; Queue 구현!

Swift에는 Queue 내장함수가 존재하지 않기 때문에 직접 Queue를 구현해서 사용해야 한다. swift 알고리즘 문제 BFS 등을 풀 때 필요한 경우가 있다. 큐는, 사람들이 줄을 설 때와 같이 먼저 들어간 원소가 먼저 나오게 된다. 이를 선입선출(FIFO, First In First Out) 구조라고 한다. 큐의 연산은 삽입(enqueue), 삭제(dequeue), 원소 보기(peek), count(큐에 들어있는 원소의 개수), isEmpty(큐가 비었는지 여부)로 이루어져 있다. enqueue 큐에 원소를 삽입하는 연산 큐를 배열로 선언하고, append를 통해 삽입한다. dequeue 큐의 원소를 삭제하는 연산 removeFirst()를 사용 시 O(n)의 시간복잡도를 가진다. 이를 개선하기..

iOS/Swift 2023.02.09