본문 바로가기
728x90
반응형

목차훔치기204

배열(면접을 위한 CS 전공지식 노트) 배열 배열 배열(Array)은 컴퓨터 과학과 프로그래밍에서 중요한 자료구조 중 하나로, 여러 개의 요소를 하나의 변수에 저장할 수 있는 데이터 구조입니다. 배열은 데이터를 순서대로 저장하며, 각 요소는 고유한 인덱스를 가지고 있습니다. 이 인덱스를 사용하여 특정 위치에 있는 요소를 빠르게 찾을 수 있습니다. 배열의 특징 고정된 크기: 배열은 생성할 때 크기가 고정되며, 나중에 크기를 변경하기 어려운 점이 있습니다. 이것은 배열의 주요 단점 중 하나로, 크기가 동적으로 조절되는 자료구조인 리스트와 다릅니다. 인덱스: 배열 내의 각 요소는 0부터 시작하는 고유한 인덱스를 가집니다. 이 인덱스를 사용하여 요소를 읽거나 수정할 수 있습니다. 인덱스를 통해 특정 위치에 있는 요소를 상수 시간(시간 복잡도 O(1).. 2023. 10. 25.
연결 리스트(면접을 위한 CS 전공지식 노트) 연결 리스트 연결 리스트 연결 리스트(Linked List)는 컴퓨터 과학 및 프로그래밍에서 중요한 자료 구조 중 하나로, 데이터 요소의 선형 집합을 표현하는데 사용됩니다. 연결 리스트는 배열과는 다르게 데이터 요소가 메모리상에 연속적으로 저장되지 않고, 각 요소가 다음 요소를 가리키는 링크(혹은 포인터)를 사용하여 연결된 구조를 갖습니다. 이러한 링크로 인해 데이터 요소가 메모리상에서 어디에 저장되는지에 대한 유연성을 제공하며, 데이터 요소를 삽입, 삭제, 또는 재배열하기가 쉽습니다. 연결 리스트 구성 요소 및 특징 노드(Node): 연결 리스트의 각 요소를 나타내는 단위로 노드라고 불립니다. 각 노드는 데이터 요소와 다음 노드를 가리키는 포인터(링크)로 이루어져 있습니다. 헤드(Head): 연결 리스.. 2023. 10. 24.
공간 복잡도(면접을 위한 CS 전공지식 노트) 공간 복잡도 공간 복잡도 공간 복잡도(Space Complexity)는 어떤 알고리즘 또는 프로그램이 실행될 때 필요로 하는 메모리 공간의 양을 나타내는 메트릭입니다. 공간 복잡도는 주로 알고리즘이나 데이터 구조가 메모리를 어떻게 사용하는지를 분석하고 설명하는 데 사용됩니다. 공간 복잡도 목적 메모리 요구 사항 평가: 특정 알고리즘이나 데이터 구조가 얼마나 많은 메모리를 사용하는지 이해하는 데 도움이 됩니다. 이는 시스템 또는 장치의 물리적 메모리 또는 가상 메모리에 대한 요구 사항을 평가하는 데 중요합니다. 자원 관리: 프로그램이나 알고리즘이 사용 가능한 메모리를 효율적으로 활용하는지 확인하는 데 사용됩니다. 메모리 공간의 효율적인 사용은 시스템 성능을 향상시키고, 메모리 부족 문제를 방지하는 데 중요.. 2023. 10. 23.
시간 복잡도(면접을 위한 CS 전공지식 노트) 시간 복잡도 시간 복잡도 시간 복잡도는 알고리즘 또는 자료구조의 성능을 나타내는 메트릭으로, 입력 데이터 크기에 따른 알고리즘 실행 시간의 증가 추이를 설명합니다. 시간 복잡도는 주로 빅 오(O) 표기법을 사용하여 표현되며, 입력 크기 n에 대한 함수로 나타냅니다. 시간 복잡도 개념 최선, 평균, 최악의 경우 (Best Case, Average Case, Worst Case): 알고리즘의 시간 복잡도는 일반적으로 세 가지 경우로 나뉩니다. 최선의 경우 (Best Case): 주어진 입력에 대해 알고리즘이 가장 빨리 실행되는 경우의 시간 복잡도를 나타냅니다. 평균 경우 (Average Case): 입력 데이터의 모든 가능한 경우를 고려하여 평균적으로 알고리즘이 실행되는 경우의 시간 복잡도를 나타냅니다. 최.. 2023. 10. 22.
해시 조인(면접을 위한 CS 전공지식 노트) 해시 조인 해시 조인 해시 조인(Hash Join)은 데이터베이스 쿼리 처리에서 사용되는 조인(Join) 알고리즘 중 하나입니다. 조인은 두 개 이상의 테이블에서 데이터를 결합하여 새로운 결과 집합을 생성하는 연산을 말합니다. 해시 조인은 대용량 데이터셋을 조인하는 데 효과적인 방법 중 하나로, 두 테이블 간의 조인 조건을 만족하는 행을 찾아내기 위해 해시(Hash) 함수를 사용합니다. 해시 조인 주요 특징과 작동 방식 해시 함수 사용: 해시 조인은 조인 키(Join Key) 열의 값을 해시 함수에 입력으로 넣어 해시 값을 생성합니다. 이 해시 함수는 입력 데이터를 무작위로 분산시키는 역할을 합니다. 해시 테이블 생성: 두 개의 조인 대상 테이블 중 하나(일반적으로 크기가 더 작은 테이블)를 선택하고, .. 2023. 10. 21.
정렬 병합 조인(면접을 위한 CS 전공지식 노트) 정렬 병합 조인 정렬 병합 조인 정렬 (Sorting): 정렬은 데이터를 특정 기준에 따라 순서대로 나열하는 과정입니다. 이 과정은 주로 데이터를 빠르게 검색하거나 분석하기 위해 사용됩니다. 일반적으로 정렬은 숫자, 문자열, 날짜 또는 다른 데이터 유형에 대한 정렬이 필요한 상황에서 사용됩니다. 가장 일반적인 정렬 알고리즘으로는 버블 정렬, 선택 정렬, 삽입 정렬, 합병 정렬, 퀵 정렬 등이 있습니다. 각 알고리즘은 다양한 방식으로 데이터를 정렬합니다. 병합 (Merging): 병합은 두 개 이상의 정렬된 데이터 집합을 하나로 합치는 과정입니다. 병합 작업은 주로 정렬된 데이터를 합치는 데 사용됩니다. 예를 들어, 두 개의 정렬된 목록을 합쳐서 하나의 정렬된 목록으로 만들 수 있습니다. 합병 정렬(Mer.. 2023. 10. 20.
중첩 루프 조인(면접을 위한 CS 전공지식 노트) 중첩 루프 조인 중첩 루프 조인 중첩 루프 조인(Nested Loop Join)은 데이터베이스 쿼리에서 사용되는 조인 연산의 한 유형입니다. 이것은 두 개 이상의 테이블에서 데이터를 결합하여 하나의 결과 집합을 생성하는 데 사용됩니다. 중첩 루프 조인은 일반적으로 두 개의 중첩된 루프(반복)를 사용하여 작동합니다. 중첩 루프 조인 작동 방식 외부 루프: 가장 바깥쪽 루프를 시작합니다. 이 루프는 첫 번째 테이블(기준 테이블)의 모든 행을 반복합니다. 내부 루프: 외부 루프의 각 반복에 대해 내부 루프가 시작됩니다. 내부 루프는 두 번째 테이블(결합할 테이블)의 모든 행을 반복합니다. 조인 조건 확인: 내부 루프에서 현재 외부 루프의 행과 현재 내부 루프의 행 간에 조인 조건을 확인합니다. 조인 조건은 일.. 2023. 10. 19.
합집합 조인(면접을 위한 CS 전공지식 노트) 합집합 조인 합집합 조인 합집합 조인(Union Join)은 데이터베이스 관리 시스템(DBMS)에서 사용되는 데이터베이스 조인 연산 중 하나입니다. 이 조인 연산은 두 개 이상의 테이블을 합쳐서 하나의 결과 테이블을 생성하는 데 사용됩니다. 합집합 조인은 주로 집합 이론의 합집합 연산과 유사하게 작동합니다. 합집합 조인 특징 및 작동방식 테이블 결합: 합집합 조인은 두 개 이상의 테이블을 하나로 결합합니다. 이때, 각 테이블은 일반적으로 관련된 열(컬럼)을 기준으로 결합됩니다. 중복 행: 합집합 조인을 수행하면 중복된 행이 발생할 수 있습니다. 이는 합집합 연산과 유사하게 모든 입력 테이블에서 중복된 행을 유지하는 결과를 생성합니다. 결과 테이블: 합집합 조인의 결과는 하나의 새로운 테이블이며, 이 테이.. 2023. 10. 18.
오른쪽 조인(면접을 위한 CS 전공지식 노트) 오른쪽 조인 오른쪽 조인 오른쪽 조인 (Right Join)은 데이터베이스에서 사용되는 조인(결합) 연산 중 하나로, 두 개의 테이블을 결합하여 관련 정보를 추출하는 작업입니다. 오른쪽 조인은 SQL 쿼리 언어를 사용하여 특히 데이터베이스에서 많이 활용됩니다. 오른쪽 조인은 다음과 같이 작동합니다. 오른쪽 테이블 (우측 테이블)의 모든 레코드를 반환합니다. 왼쪽 테이블 (좌측 테이블)에서 오른쪽 테이블과 일치하는 행이 있는 경우, 해당 행을 반환합니다. 일치하지 않는 행은 NULL 값으로 채웁니다. 오른쪽 조인 사용 예 EX!! 두 개 이상의 테이블 간에 데이터를 결합하고, 오른쪽 테이블의 모든 레코드를 포함해야 할 때. 왼쪽 테이블과 오른쪽 테이블 간의 관계에서 오른쪽 테이블의 정보를 중심으로 결과를 .. 2023. 10. 17.
728x90
반응형