전체 글 164

스택과 큐를 공부하자

다음 공부 순서는 큐(Queue)와 스택(Stack)이다. 데이터 구조에 대한 이야기는 이전 포스팅에서 했다. 배열과 리스트는 자료를 저장하고 찾는 방법에 대하여, 데이터를 묶음으로 다루는 데이터 구조였다. 큐와 스택은 왜 등장했을까? 배열과 리스트는 아무 칸에나 접근할 수 있는 범용 구조다. 인덱스로 어디든 읽고, 어디든 뺄 수 있다. 그런데 이 "뭐든 할 수 있음"이 단점으로 작용하는 상황이 있다. 현실의 많은 문제는 데이터를 넣고 빼는 순서에 규칙이 필요하기 때문이다. 예를 들면 웹 브라우저의 뒤로가기는 가장 최근에 있었던 페이지로 되돌아가고, 은행의 번호표는 항상 먼저 온 순서를 불러준다. 이걸 배열로 직접 짜려면 "매번 마지막 인덱스에서 꺼내야지", "맨 앞부터 빼야지" 하고 개발자가 규칙을 손..

Study 2026.07.16

자료구조를 배열부터 다시 공부해본다

호기롭게 첫 글을 적어두고, 포스팅 할 거리를 찾아보니 현재 업무하고 있는 내용들은 내가 쉽게 풀어 쓸 수 있는 범주의 것들이 별로 없었다ㅠㅠ. 물론 쉽게 풀어 쓸 수 있느냐 여부가 뭐가 중요해! 할 수 있지만, 내가 이해한 바대로 적을 수 있어야 좋은 글이 나오지 않을까 싶은 마음에 기초적인 것부터 다시 공부를 시작하는 의미로 developer roadmap 의 순서를 다시 따라가 보기로 했다.한번 공부를 진행하다가 꾸준함의 실패를 겪은 적이 있어서, 최대한 내가 지속할 수 있고 이해할 수 있는 범위 내에서 공부를 진행해보기로 마음먹었다. 우선 현재 업무에 가장 많이 사용하고 있는 언어가 코틀린이기 때문에 가볍게 코틀린으로 골랐다. 이전에 실패한 원인은 "Pick a Language" 파트에서 low ..

Study 2026.07.02

어디까지 공부해야 할지 모를 땐 추상화 해야겠다

최근 내 개발에 큰 영향을 미치는 시니어 스태프(이하 고문님)에게 나는 현재 상황에서 무엇을 해야할 지 방향성을 여쭤보았다. 가장 빠르게 성과가 보이는 방향성은 AI 역량을 강화하고, 비즈니스적으로 깊에 파고드는 것이라고 생각하기에 고문님도 현실의 방향성과 밸런스가 맞는 조언을 주실 것이라고 생각했는데, 고문님이 제시한 방향성은 정반대였다.이럴 때일수록 CS 지식을 강화하라.AI 는 적극 활용하되, 보조 도구로 사용하라. 알지 못하는 상태에서 하는 질문은 진실과 거짓을 구분할 수 없다.맞는 말씀이다. 아직 수많은 개발팀들이 원하는건 합류하는 팀원의 탄탄한 실력이고, 이는 철저한 지식이 뒷받침하니까. 그렇다고 해서 마냥 반성만 하고 있기에 의문이 전부 다 가신것도 아니었다. 실제로 AI가 발전함에 따라 실..

Study 2026.06.22

Complex Data Structures 정리: B트리, 스킵 리스트, ISAM (Python 예제 포함)

Complex Data Structures 정리: B트리, 스킵 리스트, ISAM (Python 예제 포함)Complex Data Structures(복잡한 자료구조)는 대규모 데이터를 효율적으로 저장하고 탐색하기 위해 사용되는 고급 자료구조다. 데이터베이스, 파일 시스템, 검색 엔진 등 다양한 분야에서 핵심적으로 활용된다.Complex Data Structures란?복잡한 자료구조는 단순한 배열, 연결 리스트로는 해결하기 어려운 문제를 다루기 위해 설계되었다. 대표적인 예시는 다음과 같다.트리(Tree): 계층적 구조 표현, 파일 시스템 등에서 사용그래프(Graph): 네트워크 구조, SNS나 네트워크 토폴로지 표현해시 테이블(Hash Table): 키-값 기반으로 평균 O(1) 탐색 성능 제공힙(He..

Archive 2025.09.19

고급 자료구조 (Advanced Data Structures) 정리와 파이썬 구현 예제

고급 자료구조 (Advanced Data Structures) 정리와 파이썬 구현 예제프로그래밍과 알고리즘 문제 해결에서 중요한 개념 중 하나가 자료구조다. 특히, 기본적인 배열(Array), 스택(Stack), 큐(Queue), 연결 리스트(Linked List) 등을 넘어서는 고급 자료구조(Advanced Data Structures) 는 복잡한 문제를 효율적으로 해결하는 데 핵심 역할을 한다.이 글에서는 Trie, Segment Tree, Fenwick Tree, Disjoint Set, Suffix Array 같은 대표적인 고급 자료구조를 정리하고, 파이썬 코드 예제를 통해 이해를 돕는다.목차Trie (트라이)Segment Tree (세그먼트 트리)Fenwick Tree (펜윅 트리, Binary..

Archive 2025.09.17

그래프 자료구조(Graph Data Structure)와 탐색 알고리즘 총정리

그래프 자료구조(Graph Data Structure)와 탐색 알고리즘 총정리그래프 자료구조(Graph Data Structure)는 컴퓨터 과학에서 매우 중요한 개념이다. 그래프는 정점(Vertex, Node)과 간선(Edge)으로 이루어진 비선형 자료구조로, 네트워크나 관계를 표현할 때 자주 사용된다.웹 페이지 연결, 소셜 네트워크, 최단 경로 탐색 등 다양한 분야에서 활용된다.그래프의 종류그래프는 크게 방향 그래프와 무방향 그래프로 구분된다.방향 그래프(Directed Graph): 간선이 한쪽 방향으로만 연결된다. 예를 들어, 일방통행 도로 네트워크.무방향 그래프(Undirected Graph): 간선이 양방향 관계를 가진다. 예를 들어, 친구 관계.또한 가중 그래프(Weighted Graph)와..

Archive 2025.09.16

트리 자료구조와 탐색 알고리즘 (Python 예제)

트리 자료구조와 탐색 알고리즘 (Python 예제)트리(Tree) 자료구조는 컴퓨터 과학에서 중요한 개념 중 하나다. 트리는 데이터를 계층적(hierarchical) 으로 표현하며, 파일 시스템, 데이터베이스, HTML DOM 구조 등 다양한 곳에서 활용된다. 이번 글에서는 트리 자료구조와 함께 자주 사용되는 이진 트리, 이진 탐색 트리, AVL 트리, B-트리, 힙, 그리고 대표적인 탐색 및 순회 알고리즘을 Python 코드 예제와 함께 정리한다.트리(Tree)란?트리는 노드(node)와 간선(edge)으로 이루어진 비선형 자료구조다.루트(root): 최상단 노드리프(leaf): 자식이 없는 노드형제(sibling): 같은 부모를 공유하는 노드트리의 구조는 데이터를 계층적으로 표현하는 데 적합하다.이진..

Archive 2025.09.14

검색 알고리즘 (Search Algorithms) — 선형 탐색과 이진 탐색 파이썬 구현

검색 알고리즘 (Search Algorithms) — 선형 탐색과 이진 탐색 파이썬 구현 검색 알고리즘은 데이터 집합에서 원하는 값을 빠르게 찾기 위해 사용되는 핵심 개념이다. 특히 코딩 테스트나 실무 개발에서 자주 등장하는 기본 탐색 기법은 선형 탐색(Linear Search)과 이진 탐색(Binary Search)이다. 이 글에서는 두 알고리즘의 원리, 시간 복잡도, 장단점, 그리고 파이썬 구현 코드를 함께 정리한다.검색 알고리즘이란?검색 알고리즘(Search Algorithm)은 데이터 구조 안에서 특정한 값(또는 조건을 만족하는 값)을 찾는 절차를 의미한다.대표적인 탐색 방법에는 다음과 같은 것들이 있다.선형 탐색 (Linear Search)이진 탐색 (Binary Search)깊이 우선 탐색 (..

Archive 2025.09.09

정렬 알고리즘 종류와 파이썬 코드 예제 정리

정렬 알고리즘 종류와 파이썬 코드 예제 정리 프로그래밍에서 가장 기본적이면서도 중요한 개념 중 하나가 바로 **정렬 알고리즘(Sorting Algorithms)**이다.정렬은 데이터를 오름차순이나 내림차순으로 나열하여 검색, 탐색, 분석 등을 더 빠르게 수행할 수 있도록 한다.이번 글에서는 대표적인 정렬 알고리즘 종류와 함께 파이썬 코드 예제를 정리해본다.정렬 알고리즘이란?정렬 알고리즘은 배열이나 리스트의 원소들을 비교하여 특정 기준(숫자 크기, 사전식 순서 등)에 따라 재배열하는 알고리즘이다.대표적인 정렬 알고리즘으로는 다음과 같은 것들이 있다.버블 정렬 (Bubble Sort)삽입 정렬 (Insertion Sort)선택 정렬 (Selection Sort)병합 정렬 (Merge Sort)퀵 정렬 (Qu..

Archive 2025.08.29

알고리즘 복잡도(Big O, Θ, Ω) 완벽 정리와 파이썬 예제

알고리즘 복잡도(Big O, Θ, Ω) 완벽 정리와 파이썬 예제목차알고리즘 복잡도란?시간 복잡도와 공간 복잡도의 차이복잡도 계산 방법빅오(Big O), 빅세타(Big Θ), 빅오메가(Big Ω) 개념복잡도별 파이썬 예제복잡도 비교 그래프와 이해 포인트마무리 및 참고 자료1. 알고리즘 복잡도란?알고리즘 복잡도(Algorithmic Complexity)는 문제를 해결하기 위해 필요한 컴퓨팅 자원을 수학적으로 표현한 것이다.시간 복잡도(Time Complexity): 실행에 걸리는 시간공간 복잡도(Space Complexity): 사용되는 메모리 양효율적인 알고리즘은 더 적은 시간과 공간으로 문제를 해결한다. 복잡도 표기는 보통 Big O 표기법을 사용한다.2. 시간 복잡도 vs 공간 복잡도시간(Time): ..

Archive 2025.08.08
반응형