
Binary Search Tree 를 Swift를 활용해 구현합니다.

Binary Search는 seraching algorithm 중 가장 효율적인 알고리즘 중 하나로, 중간값을 활용해 찾는 범위를 절반 씩 줄여 효율을 높이는 알고리즘을 Swift로 구현해본다.

Heap과 Priority Queue 톺아보기

- Merge Sort (합병정렬) 은 정렬알고리즘 중 가장 빠른 알고리즘 중 하나이다. → O(n logn) 합병 정렬의 기본 아이디어는 이다. > - 먼저 나눈 후, 이후에 병합한다. 작동방식 이렇게 정렬되지 않은 카드가 있다고 가정하자. 구현 mergeSort Split 재귀의 탈출 조건 → 배열이 오직 하나의 원소만 가질 때 ...

지금까지는 정렬 순서를 결정하기 위해 비교에 의존해왔다. Radix Sort 는 선형 시간안에 정렬이 가능한, non-comparative algorithm이다. 동작 방식 기수정렬은 자리수를 비교한다. 예시 배열 [88, 410, 1772, 20] 이 있다고 하자. 1의 자리 비교 1의 자리를 비교하면 0, 2, 8이다. → 이 순서대로...
std::unordered_set과 std::unordered_map 컨테이너 활용하기
구현이 약해서 구현문제를 풀다가 시간복잡도에 대해 깊은 깨달음을 얻게 된 문제가 있어 풀이를 비교해보고자 한다. 문제는 만들 수 있는 회문을 파악해 만들 수 있는 경우 팰린드롬 결과를, 불가능하다면 "I'm Sorry Hansoo\\n" 를 출력하는 문제이다. 최근에

개발을 시작한 후 알고리즘은 정말 내가 도저히 넘을 수 없는 벽 같았다. 단 한번도 DFS, BFS를 내 손으로 혼자 구현해본적이 없었고, 이론만 반복할 뿐 구현실력은 절대 늘지 않았다. 그러던 중 언어를 바꿀 기회가 생겼다. iOS 앱 개발에 집착하지 않기로 결정한