기초 개념 · 기술 면접 대비

자료구조 면접 퀴즈

효율적인 데이터 관리의 기초

배열, 연결리스트, 스택, 큐, 트리, 그래프 등 핵심 자료구조를 마스터하세요. 면접에서 자주 나오는 시간/공간 복잡도 분석까지.

로그인 없이 풀어보기
46개 문제 · 무료

학습할 핵심 개념

배열과 동적 배열
연결리스트 (단일/이중)
스택과 큐
해시테이블
트리 (이진, BST, AVL)
그래프 (DFS, BFS)
힙과 우선순위 큐

핵심 개념 미리보기

자료구조 면접에서 꼭 나오는 개념을 미리 확인하세요

배열과 연결 리스트

핵심

배열 vs 연결 리스트

핵심 차이

구분배열연결 리스트
접근O(1) 랜덤 접근O(n) 순차 접근
삽입/삭제O(n) 시프트 필요O(1) 포인터만 변경
메모리연속 할당분산 할당

실무 포인트

  • Java ArrayList는 내부적으로 배열 기반 → 조회가 많으면 유리
  • LinkedList는 중간 삽입/삭제가 잦을 때 유리하지만, 캐시 지역성이 낮아 실무에선 ArrayList가 대부분 빠름
  • 면접 키워드: 캐시 지역성(Cache Locality), 시간복잡도 트레이드오프
면접에서 이렇게 나옵니다
  • Q.배열과 연결리스트의 시간복잡도 차이를 설명해주세요
  • Q.ArrayList vs LinkedList 중 어떤 상황에서 뭘 쓰나요?
  • Q.캐시 히트율 관점에서 배열이 유리한 이유는?

배열 (Array)

핵심

배열 (Array)

메모리 구조

인덱스:  [0]  [1]  [2]  [3]  [4]
값:      10   20   30   40   50
주소:   100  104  108  112  116
         └─ 연속된 메모리 공간 ─┘

시간 복잡도

연산복잡도이유
인덱스 접근O(1)주소 = 시작 + index × size
뒤에 추가O(1)배열 확장 시 O(n)
앞/중간 삽입O(n)뒤 요소 전부 시프트
삭제O(n)빈 공간 메우기
탐색 (미정렬)O(n)순차 탐색
탐색 (정렬)O(log n)이진 탐색 가능

실무 포인트

  • 캐시 지역성: 연속 메모리라 CPU 캐시 히트율 높음
  • Java ArrayList: 내부적으로 배열. 조회 많으면 유리
  • 동적 배열: 용량 초과 시 2배로 확장 후 복사 (amortized O(1))

면접 키워드

"배열은 왜 인덱스 접근이 O(1)인가?" → 연속 메모리 + 주소 계산

면접에서 이렇게 나옵니다
  • Q.배열에서 인덱스 접근이 O(1)인 이유를 설명해주세요
  • Q.동적 배열(ArrayList)의 확장 방식을 설명해주세요
  • Q.배열 vs 연결리스트, 캐시 효율 관점에서 비교해주세요

스택과 큐

핵심

스택과 큐

스택 (LIFO)

  • 함수 호출 스택, 브라우저 뒤로가기, Undo 기능
  • DFS(깊이 우선 탐색)에 활용

큐 (FIFO)

  • 메시지 큐(Kafka, RabbitMQ), 작업 스케줄링
  • BFS(너비 우선 탐색)에 활용

실무 포인트

  • 콜 스택 오버플로우: 재귀가 너무 깊으면 StackOverflowError
  • 메시지 큐: 비동기 처리의 핵심 — 주문 처리, 알림 발송 등
  • Priority Queue: 우선순위 기반 작업 처리 (힙으로 구현)
면접에서 이렇게 나옵니다
  • Q.스택과 큐의 차이를 실무 예시로 설명해주세요
  • Q.브라우저 뒤로가기는 어떤 자료구조로 구현하나요?
  • Q.BFS에서 큐를 사용하는 이유는?

더 많은 개념과 문제는 가입 후 이용할 수 있어요

먼저 5문제 맛보기

자료구조 면접 빈출 질문

실제 면접에서 자주 나오는 질문들입니다

Q.

배열과 연결리스트의 시간복잡도 차이를 설명해주세요

배열과 연결 리스트 · Foundry에서 퀴즈로 연습하기

Q.

ArrayList vs LinkedList 중 어떤 상황에서 뭘 쓰나요?

배열과 연결 리스트 · Foundry에서 퀴즈로 연습하기

Q.

캐시 히트율 관점에서 배열이 유리한 이유는?

배열과 연결 리스트 · Foundry에서 퀴즈로 연습하기

Q.

실무에서 연결리스트를 직접 쓰는 경우가 있나요?

배열과 연결 리스트 · Foundry에서 퀴즈로 연습하기

Q.

배열에서 인덱스 접근이 O(1)인 이유를 설명해주세요

배열 (Array) · Foundry에서 퀴즈로 연습하기

Q.

동적 배열(ArrayList)의 확장 방식을 설명해주세요

배열 (Array) · Foundry에서 퀴즈로 연습하기

Q.

배열 vs 연결리스트, 캐시 효율 관점에서 비교해주세요

배열 (Array) · Foundry에서 퀴즈로 연습하기

Q.

배열에서 중간 삽입이 O(n)인 이유는?

배열 (Array) · Foundry에서 퀴즈로 연습하기

이런 점이 좋아요

코딩 테스트 기초 완성

알고리즘 이해도 향상

면접 대비 핵심 개념

지금 바로 시작하세요

무료로 자료구조 퀴즈를 풀고, AI 오답 분석으로 실력을 키우세요.