질문목록

질문목록

자료구조

배열(Array)과 연결 리스트(Linked List)의 차이점은 무엇인가요?

  • 배열은 연속된 메모리 공간에 정적으로 저장
  • 링크드리스트는 동적으로 메모리 할당

트리(Tree)와 그래프(Graph)의 차이점은 무엇인가요?

힙(Heap) 자료구조는 무엇이며, 어떤 용도로 사용되나요?

해시 테이블(Hash Table)과 그 작동 원리에 대해 설명해 주세요.

그래프 탐색 알고리즘(BFS, DFS)에 대해 설명해 주세요.

  • BFS: 같은 깊이의 노드 먼저 탐색
  • DFS: 가장 깊은 노드까지 탐색 후 이웃 노드 탐색

큐(Queue)를 사용하여 스택을 구현할 수 있나요?

스택을 사용하여 큐를 구현할 수 있나요?

Trie 자료구조는 무엇이며, 어떤 용도로 사용되나요?

동적 배열(Dynamic Array)과 정적 배열(Static Array)의 차이점은 무엇인가요?

  • 정적 배열은 생성시 크기 고정, 동적 배열은 크기 가변

우선순위 큐(Priority Queue)는 어떻게 동작하나요?

AVL 트리와 레드블랙 트리의 차이점은 무엇인가요?

링크드 리스트(Linked List)에서 중복된 노드를 제거하는 방법을 설명해 주세요.

원형 큐(Circular Queue)의 특징과 사용 사례는 무엇인가요?

이진 힙(Binary Heap)의 삽입 및 삭제 과정에 대해 설명해 주세요.

Union-Find 알고리즘의 원리와 사용 사례를 설명해 주세요.

힙 정렬(Heap Sort) 알고리즘의 시간 복잡도는 어떻게 되나요?

퀵소트 vs 머지소트?

  • 퀵정렬은 pivot을 중심으로 앞뒤로 이동, O(nlogn), O(n^2)
  • 병합정렬은 divide and conquer 방식으로 2개로 분할 후 정렬 후 합병, O(nlogn)

운영체제

프로세스(Process)와 스레드(Thread)의 차이점은 무엇인가요?

  • 실행되고 있는 프로그램 인스턴스, 프로세스 내의 실행 흐름

데드락(Deadlock)이란 무엇인가요?

  • 프로세스가 서로의 자원을 점유하며 대기하는 상태

가상 메모리(Virtual Memory)란 무엇인가요?

페이징(Paging)과 세그멘테이션(Segmentation)의 차이점은 무엇인가요?

  • 페이징: 고정 크기로 메모리 분할, 세그멘테이션: 가변 크기 메모리 분할

컨텍스트 스위칭(Context Switching)이란 무엇인가요?

  • CPU가 프로세스 실행 위치를 저장하고 다른 프로세스를 처리하는 것

운영체제에서의 스케줄링 알고리즘 종류와 특징에 대해 설명해 주세요.

  • RR, FCFS, SJF

인터럽트(Interrupt)란 무엇인가요?

  • CPU가 작업 하다가 다른 작업

멀티프로세싱(Multiprocessing)과 멀티스레딩(Multithreading)의 차이점은 무엇인가요?

  • 멀티프로세싱은 여러개의 코어로 병렬로 프로세스 실행, 멀티스레딩은

스레드의 장단점에 대해 설명해 주세요.

  • 코드 데이터 힙을 공유

메모리 단편화(Fragmentation)란 무엇인가요?

시스템 콜(System Call)이란 무엇인가요?

  • 사용자 모드에서 응용프로그램이 사용하는 커널인터페이스

쓰레싱(Thrashing)이란 무엇인가요?

  • 페이지 부재율이 높아 페이지 교체가 자주 일어나는 것

I/O 바운드(IO-Bound)와 CPU 바운드(CPU-Bound)의 차이점은 무엇인가요?

운영체제의 주요 기능에 대해 설명해 주세요.

커널 모드(Kernel Mode)와 사용자 모드(User Mode)의 차이점은 무엇인가요?

  • 사용자 모드: 프로그램실행, 커널모드: OS가 CPU사용

캐시 메모리(Cache Memory)의 역할은 무엇인가요?

하드 링크(Hard Link)와 소프트 링크(Soft Link)의 차이점은 무엇인가요?

RAID의 종류와 각각의 특징을 설명해 주세요.

운영체제의 부팅 과정에 대해 설명해 주세요.

스왑 공간(Swap Space)이란 무엇인가요?