thumbnail

코딩테스트에서 자주 출제되는 자료구조별 문제 유형은 매우 다양하지만, 대표적으로 배열, 스택, 큐, 트리, 그래프 등이 핵심입니다. 각 자료구조는 문제 해결 방식과 시간·공간 복잡도에서 차이가 커서, 어떤 문제에 어떤 자료구조가 적합한지 아는 것이 합격 전략에 큰 영향을 줍니다. 2026년 기준으로 코딩테스트에서 자주 나오는 자료구조별 문제 유형을 비교하고, 상황별 선택 기준을 명확히 제안합니다.

빠른 정리

  • 배열은 순차 탐색과 정렬 문제에 강점이 있지만, 삽입·삭제가 빈번한 경우 비효율적이다.
  • 스택과 큐는 후입선출과 선입선출 문제에 적합하며, 구현 난이도와 활용처가 다르다.
  • 트리와 그래프는 탐색과 연결성 문제에 필수적이며, DFS·BFS 등 알고리즘과 결합해 자주 출제된다.

배열 문제 유형과 선택 기준

코딩테스트에서 배열은 가장 기본적인 자료구조로, 숫자나 문자열을 순차적으로 저장하고 탐색하는 데 쓰입니다. 대표적인 문제 유형은 정렬, 부분합, 투포인터, 슬라이딩 윈도우 등이 있어요. 배열은 인덱스를 통한 빠른 접근이 장점이지만, 중간 삽입이나 삭제가 많으면 시간 낭비가 큽니다.

예를 들어, 연속된 구간의 합을 구하는 문제는 배열에서 슬라이딩 윈도우 기법을 적용하면 효율적입니다. 반면, 중간에 데이터를 자주 삽입해야 하는 문제라면 배열보다 연결 리스트가 더 적합할 수 있어요.

✅ 배열 문제는 인덱스 기반 접근과 정렬이 핵심이며, 삽입·삭제 빈도에 따라 다른 자료구조를 고려해야 한다.

스택과 큐: 문제 유형과 활용 차이

스택과 큐는 모두 선형 자료구조지만, 데이터 처리 순서에서 큰 차이가 있습니다. 스택은 후입선출(LIFO) 방식으로 괄호 검사, 수식 계산, DFS 구현에 자주 쓰입니다. 큐는 선입선출(FIFO) 방식으로 BFS 탐색, 캐시 구현, 시뮬레이션 문제에 적합해요.

구분 스택
데이터 처리 순서 후입선출 (LIFO) 선입선출 (FIFO)
주요 문제 유형 괄호 검사, 수식 계산, DFS BFS, 시뮬레이션, 캐시
장점 재귀적 문제에 직관적, 메모리 절약 가능 순차 처리에 적합, 최단 경로 탐색에 필수
단점 순차 처리 어려움, 큐보다 활용 범위 좁음 재귀적 문제에 부적합, 스택보다 구현 복잡

✅ 스택과 큐는 처리 순서 차이가 문제 유형을 결정하므로, 문제 요구에 맞는 자료구조 선택이 중요하다.

트리 문제 유형과 탐색 알고리즘

✅ 트리 문제는 구조별 탐색 알고리즘 선택이 핵심이며, DFS와 BFS의 차이를 이해해야 한다.

그래프 문제 유형과 탐색 기법 비교

DFS는 깊이 우선으로 경로를 탐색해 사이클 검출이나 연결 요소 찾기에 적합하고, BFS는 최단 경로 탐색에 유리합니다. 예를 들어, 미로 찾기 문제는 BFS가 일반적이며, 사이클 여부 판단은 DFS가 더 직관적입니다.

탐색 기법 DFS BFS
탐색 순서 깊이 우선 너비 우선
주요 용도 사이클 검출, 연결 요소, 백트래킹 최단 경로, 레벨 탐색, 시뮬레이션
구현 방식 재귀 또는 스택
시간 복잡도 O(V+E) O(V+E)

✅ 그래프 문제는 DFS와 BFS의 탐색 특성을 파악해 문제 유형에 맞게 활용하는 것이 중요하다.

알고리즘별 시간·공간 복잡도와 적용 상황 비교

자료구조/알고리즘 시간 복잡도 공간 복잡도 주요 적용 상황
배열 (정렬 포함) O(N log N) (퀵소트 등) O(N) 순차 탐색, 정렬, 투포인터
스택 O(N) O(N) 괄호 검사, DFS, 수식 계산
O(N) O(N) BFS, 시뮬레이션, 캐시
트리 탐색 (DFS/BFS) O(V+E) O(V) 계층 구조 탐색, 최소 공통 조상
그래프 탐색 (DFS/BFS) O(V+E) O(V) 경로 탐색, 사이클 검출, 최단 경로

✅ 시간·공간 복잡도와 문제 특성을 고려해 자료구조와 알고리즘을 적절히 조합해야 한다.

실제로 고를 때 먼저 확인할 것

코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리는 단순 암기보다 문제의 요구 조건과 입력 데이터 특성을 파악하는 데서 출발해야 해요. 예를 들어, 데이터 삽입·삭제가 많으면 배열 대신 연결 리스트나 트리를 고려하고, 탐색 범위가 넓으면 BFS나 DFS를 상황에 맞게 선택해야 합니다.

또한, 시간 제한과 메모리 제한을 감안해 복잡도가 높은 알고리즘은 피하고, 문제 유형별로 가장 효율적인 자료구조를 적용하는 것이 합격에 유리합니다. 자주 하는 실수로는 문제 조건을 제대로 읽지 않고 무조건 정렬이나 DFS를 적용하는 경우가 있는데, 이는 시간 초과나 잘못된 답안으로 이어져요.

✅ 문제 조건과 데이터 특성에 맞게 자료구조와 알고리즘을 선택하는 것이 코딩테스트 합격의 핵심이다.

오늘 이 글에서 다룬 자료구조별 문제 유형과 선택 기준을 바탕으로, 자신에게 익숙한 자료구조부터 차근차근 문제에 적용해보세요. 예를 들어, 배열과 투포인터를 활용한 연속 부분합 문제부터 시작하면 실전 감각을 키우는 데 도움이 될 거예요.

자주 묻는 질문 (FAQ)

Q. 코딩테스트에서 시간 복잡도가 중요한 이유는 뭔가요?

A. 제한 시간 내에 문제를 해결해야 하므로, 복잡도가 높은 알고리즘은 시간 초과를 유발할 수 있어요. 문제 입력 크기에 맞는 효율적인 알고리즘을 선택해야 합니다.

Q. 그래프 문제에서 다익스트라 알고리즘은 언제 사용하나요?

A. 가중치가 있는 그래프에서 최단 경로를 찾을 때 사용해요. BFS는 가중치가 없거나 모두 같을 때 적합합니다.

Q. 코딩테스트에서 자주 하는 자료구조 선택 실수는 무엇인가요?

A. 문제 조건을 무시하고 무작정 DFS나 정렬을 적용하는 경우가 많아요. 입력 크기와 문제 요구를 고려하지 않으면 시간 초과나 오답이 발생할 수 있습니다.

코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리
코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리
코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리
코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리
코딩테스트에서 자주 나오는 자료구조별 문제 유형 정리