알고리즘 [탐색 알고리즘] 값 탐색 - 선형탐색, 이분탐색 탐색 알고리즘은 원하는 데이터를 찾는 기본적인 방법이다. 배열에서는 선형 탐색과 이분 탐색이, 그래프와 트리에서는 DFS와 BFS가 대표적이다. 이 글에서는 특히 값 탐색에 초점을 맞춰 선형 탐색과 이분 탐색의 개념, 복잡도, STL 활용법을 정리한다.
알고리즘 [Lv2] 가장 큰 수 (정렬) 여러 정수가 주어졌을 때, 이어붙여 만들 수 있는 가장 큰 수를 구하는 문제다. 핵심은 단순 정렬이 아니라 두 수를 문자열로 변환해 a+b와 b+a를 비교하는 사용자 정의 정렬을 적용하는 것이다. 이 글에서는 C++ STL의 std::sort와 람다를 활용한 풀이를 설명한다.
알고리즘 [알고리즘 기초] 정렬 - 버블 정렬, 퀵 정렬, 병합 정렬, std::sort등 버블 정렬, 퀵 정렬, 합병 정렬, 그리고 C++ 표준 라이브러리 std::sort를 비교해보며 각 알고리즘의 특징과 장단점을 정리합니다. 알고리즘 공부를 위한 기초부터 실무에서 가장 많이 쓰이는 정렬 함수까지 한눈에 확인할 수 있습니다.
알고리즘 [Lv1] 소수 찾기 - 복잡도 입력 n 이하 소수의 개수를 구하는 문제를 단계별로 최적화한 풀이를 정리했습니다. 단순 브루트 포스 방식부터 제곱근까지만 검사하는 방법, 그리고 가장 빠른 에라토스테네스의 체까지 C++ 코드와 채점 결과, 성능 비교를 한눈에 볼 수 있습니다.
알고리즘 Featured [알고리즘 기초] 복잡도 - 시간 복잡도와 공간 복잡도, Big-O 표기법 시간복잡도는 “입력 크기 n이 커질 때 실행 시간이 얼마나 늘어나는가”, 공간복잡도는 “추가 메모리를 얼마나 쓰는가”를 점근적으로 평가한다. 상수/하드웨어/캐시의 영향은 실무에서 크지만, 알고리즘 비교의 1차 기준은 여전히 Big-O다.