데이터 구조 인터뷰 질문 및 답변 [초보 및 경험자용]

게시 됨: 2020-11-23

데이터 구조 및 알고리즘 인터뷰 질문을 작성하는 목적은 주제 데이터 구조 및 알고리즘에 대한 인터뷰에서 일반적으로 묻는 질문의 특성을 익히는 것입니다. 좋은 면접관은 미리 정해진 질문을 하지 않습니다. 일반적으로 질문은 주제의 기본 개념에서 시작하여 귀하의 답변과 추가 토론에 따라 계속됩니다. 전문 지식을 얻고 꿈의 데이터 과학 직업을 얻으려면 데이터 과학 인증을 확인하십시오.

목차

데이터 구조 인터뷰 질문 및 답변

1. 자료구조란?

데이터 구조는 데이터를 체계적이고 구조적으로 정의, 저장 및 검색하는 방법론으로 생각할 수 있습니다. 데이터 구조에는 다양한 종류의 데이터 항목이 포함될 수 있습니다.

2. 사용 가능한 다양한 데이터 구조는 무엇입니까?

데이터 구조의 가용성은 프로그래밍 언어에 따라 다를 수 있습니다. 일반적으로 사용되는 데이터 구조 중 일부는 트리, 그래프, 대기열, 목록, 배열 및 스택입니다.

더 읽어보기: 데이터 구조의 정렬

3. 알고리즘이란 무엇을 의미합니까?

알고리즘을 고정된 순서로 실행하여 원하는 출력을 제공하는 명령어 클러스터를 정의하기 위한 단계적 절차로 생각할 수 있습니다.

4. 알고리즘 분석이 필요한 이유는 무엇입니까?

주어진 문제는 여러 가지 방법으로 해결할 수 있습니다. 따라서 여러 해법 알고리즘을 도출하는 것이 가능하다. 알고리즘 분석의 목적은 가장 적합한 알고리즘을 찾아 구현하는 것입니다.

5. 알고리즘 분석 기준

알고리즘은 공간과 시간이라는 두 가지 요소를 기반으로 분석됩니다. 이는 알고리즘 부분에 필요한 실행 시간과 추가 공간을 의미합니다.

6. 알고리즘의 점근적 분석이란 무엇을 의미합니까?

모든 알고리즘에는 수학적 바인딩을 기반으로 하는 세 가지 수준의 실행 시간이 있습니다.

  • Best Case의 표현은 Ω(n) 기호로 수행됩니다.
  • Worst-Case의 표현은 기호 Ο(n)로 수행됩니다.
  • 평균 사례의 표현은 기호 Θ(n)으로 수행됩니다.

7. 선형 데이터 구조란 무엇을 의미합니까?

데이터 항목을 순차적으로 배열하는 것을 선형 데이터 구조라고 합니다. 데이터 항목은 순차적으로 저장되고 액세스됩니다. 선형 데이터 구조의 일반적인 예는 목록과 배열입니다.

8. 데이터 구조에서 수행되는 일반적인 작업은 무엇입니까?

다음은 데이터 구조에서 수행할 수 있는 작업입니다.

삽입 – 데이터 항목 추가

삭제 – 데이터 항목 제거

순회 – 데이터 항목 액세스 및 인쇄

검색 – 데이터 항목 찾기

Sort – 사전 정의된 순서로 정렬된 데이터 항목

반드시 읽어야 할 내용: 데이터 구조 프로젝트 아이디어 및 주제

9. 알고리즘 개발에 대한 다양한 접근 방식은 무엇입니까?

알고리즘 개발에 일반적으로 사용되는 세 가지 접근 방식은 다음과 같습니다.

탐욕스러운 접근: 해결책을 찾기 위한 차선책 선택.

분할 정복: 문제를 가능한 최소 하위 문제로 나누고 각 하위 문제를 독립적으로 해결합니다.

동적 프로그래밍: 문제를 최소 하위 문제로 나누고 함께 해결합니다.

9. 탐욕 알고리즘의 예:

  1. · Djikstra, Kruskal, Prim의 최소 스패닝 트리 알고리즘
  2. · 그래프 – 지도 채색
  3. 정점 커버 문제
  4. · Job Scheduling 문제
  5. · 배낭 문제
  6. · 출장 판매원의 문제

10. 분할 정복 알고리즘의 예

  1. Stassen의 행렬 곱셈
  2. 빠른 정렬
  3. 병합 정렬
  4. 가장 가까운 쌍
  5. 이진 검색

11. 동적 프로그래밍 알고리즘의 예:

  1. 하노이 타워
  2. Dijkstra의 최단 경로
  3. 프로젝트 일정
  4. 배낭 문제
  5. 피보나치 수열
  6. Floyd-Marshall의 모든 쌍 최단 경로

12. 연결 목록이란 무엇입니까?

연결 목록은 참조 또는 포인터와 같이 연결로 상호 연결된 데이터 항목의 목록으로 생각할 수 있습니다. 메모리 위치에 대한 직접 액세스는 현대 고급 언어에서 허용되지 않으며 지원되지 않습니다. 사용 가능한 경우 내장 기능의 형태입니다.

13. 스택이란 무엇입니까?

후입선출(Last In First Out) 형식으로 값을 저장하고 검색하는 데 사용되는 일종의 추상 데이터 유형입니다.

14. 스택을 사용하는 이유는 무엇입니까?

스택은 O(n) 시간만 소비하는 데이터 항목의 추가 및 검색에 LIFO 방법을 사용합니다. 데이터 항목이 도착한 순서의 역순으로 액세스해야 하는 경우 스택을 사용할 수 있습니다. 스택은 표현식 구문 분석, 재귀 함수 호출 및 그래프의 깊이 우선 탐색에 더 일반적으로 사용됩니다.

스택에서 수행할 수 있는 일반적인 작업:

push(): 스택 맨 위에 항목 추가

pop(): 스택 상단에서 항목 제거

peek(): 삭제하지 않고 상위 항목의 값을 표시합니다.

is empty(): 빈 스택이 있는지 확인

is full(): 전체 스택이 있는지 확인

15. 데이터 구조에서 큐는 무엇을 의미합니까?

스택과 마찬가지로 큐도 추상 데이터 구조입니다. 그러나 대기열은 양쪽 끝에서 열려 있습니다. 즉, 한쪽 끝은 데이터 삽입(enqueue)에 사용되고 다른 쪽 끝은 항목 제거(dequeue)에 사용됩니다. 대기열은 선입선출 방식을 따릅니다. 즉, 먼저 저장된 데이터 항목이 먼저 액세스됩니다.

16. 대기열의 용도는 무엇입니까?

대기열이 선입선출 방식을 따르기 때문에 이 데이터 구조는 데이터 항목이 도착한 정확한 순서대로 작업하는 데 사용할 수 있습니다. 대기열은 다양한 프로세스의 운영 체제에서 널리 사용됩니다. 그래프 및 우선 순위 대기열의 너비 우선 탐색은 대기열의 몇 가지 예입니다.

17. 대기열에서 수행할 수 있는 작업:

enqueue(): 대기열의 뒤쪽 끝에 항목 추가

dequeue(): 대기열의 프런트 엔드에서 항목을 제거합니다.

peek (): 제거하지 않고 앞 항목의 값을 보여줍니다.

is empty(): 스택이 비어 있는지 확인

is full(): 스택이 가득 찼는지 확인

18. 이진 검색이란 무엇입니까?

이진 검색은 정렬된 목록이나 배열에 적용되는 검색 기술입니다. 검색은 전체 목록을 두 부분으로 나눌 수 있는 중간 단위를 선택합니다. 먼저 중간 단위를 검색 항목과 비교합니다.

일치하는 경우 알고리즘이 성공적으로 종료됩니다. 그렇지 않으면 검색 항목이 중간 단위보다 작은지 큰지 확인합니다. 검색 항목이 작으면 가운데가 배열 또는 목록의 마지막 항목이 됩니다. 검색 항목이 크면 가운데가 목록의 최상위 항목이 됩니다.

마지막 생각들

데이터 구조 인터뷰 질문 및 답변 가이드 가 도움이 되기를 바랍니다. 최신 정보를 제공하기 위해 가이드를 정기적으로 업데이트할 것입니다.

데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍, 업계 전문가와의 멘토링, 1 - 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.

추상 데이터 구조란 무엇을 의미합니까?

추상 데이터 구조 또는 추상 데이터 유형(ADT)은 저장된 데이터 유형, 데이터가 지원하는 작업 및 작업 매개변수 유형을 보여주는 데이터 구조의 수학적 모델입니다. ADT의 도움으로 사용자는 각 작업이 무엇을 하는지 알 수 있습니다. 그러나 작업의 작업을 찾는 데 도움이 될 수는 없습니다. 다양한 데이터 구조를 사용하여 추상 데이터 구조를 수행할 수 있습니다. 프로그램에 대한 ADT를 지정하는 것은 프로그램에서 사용할 데이터 구조를 결정하는 훌륭한 초기 단계입니다.

데이터 구조의 다른 유형은 무엇입니까?

데이터 구조는 선형 및 비선형 데이터 구조의 두 가지 유형으로 분류됩니다. 선형 데이터 구조의 요소는 차례로 차례로 배치됩니다. 조각이 특정 순서로 구성되어 있기 때문에 실행이 간단합니다. 그러나 프로그램의 복잡성이 증가함에 따라 선형 데이터 구조는 운영상의 어려움으로 인해 이상적인 솔루션이 아닐 수 있습니다. 비선형 데이터 구조에는 일반적인 순서의 요소가 없습니다. 대신, 하나의 요소가 하나 이상의 다른 요소에 연결된 계층적 순서로 구성됩니다.

데이터 구조의 어떤 기능이 미래에 관련성을 유지할 것입니까?

데이터 구조는 컴퓨터 과학의 핵심이기 때문에 데이터 구조의 거의 모든 기능은 미래에도 관련성이 유지될 것입니다. 기본 배열에서 이진 검색 트리 및 그 이상에 이르기까지 일상 생활에 본질적으로 뿌리내린 알고리즘을 개발하는 데 중요한 역할을 합니다. 데이터 구조로 인해 오늘날의 기술 세계는 빠르고 효율적이며 정확합니다. 데이터 구조를 수정하는 데 사용되는 전략은 더 구별하기 어려워집니다.