트리(tree)
·
Computer Science/Data Structure
트리(tree)란?트리는 계층적 구조를 가지는 비선형 자료구조이다. 순환(Cycle)이 없는 연결 구조이다.트리는 루트(Root) 노드에서 시작하여, 자식(Child) 노드로 연결되는 노드들로 구성된다.각 노드는 자식 노드를 가질 수 있으며, 노드 간 연결은 부모-자식 관계를 나타낸다. 또한, 부모 노드는 한개만 가질 수 있다.노드의 개수가 N이면, 간선의 수는 항상 N-1개이다.   트리의 구성  루트(Root): 트리의 최상단 노드이다. 트리는 루트 노드에서 시작된다.노드(Node): 트리의 각 요소를 나타낸다. 각 노드는 데이터와 자식 노드에 대한 포인터를 포함한다.부모(Parent): 특정 노드의 바로 위에 있는 노드이다.자식(Child): 특정 노드 바로 아래에 있는 노드이다.리프(Leaf): ..
[프로그래머스/level 1] [PCCP 기출문제] 1번 / 동영상 재생기 - 340213
·
코딩 테스트 정복기/프로그래머스
[level 1] [PCCP 기출문제] 1번 / 동영상 재생기 - 340213문제 링크성능 요약메모리: 78.8 MB, 시간: 24.92 ms구분코딩테스트 연습 > PCCP 기출문제채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 13일 05:01:52문제 설명당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.1..
해시(Hash) - 특징, 충돌 현상 원인과 해결 기법
·
Computer Science/Data Structure
해시(Hash)란?해시는 임의의 크기를 가진 데이터를 고정된 크기의 값으로 변환하는 함수 또는 알고리즘이다.이 과정을 통해 생성된 고정 크기의 값을 '해시 값'이라고 한다.  해시 관련 용어 정리해시 (Hash)임의의 값을 고정 길이로 변환해시 테이블 (Hash Table)키 값의 연산에 의해 직접 접근 가능한 데이터 구조해시 함수 (Hash Function)Key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수해시 값 (Hash Value) / 해시 주소(Hash Address)Key를 해시 함수로 연산해서 해시 값을 알아내고,이를 기반으로 해시 테이블에서 해당 Key에 대한 데이터를 일관성 있게 찾을 수 있음해시 버킷 (Hash Bucket) / 해시 슬롯 (Hash Slot)버킷 : 각..
키(Key)
·
Computer Science/Database
Key의 목적⭐️고유 식별자테이블 내 레코드(행)을 식별하거나 특정 속성에 대해 고유한 값을 유지하는데된다.⭐️효율적인 관리와 검색인덱스를 통해 키를 사용하여 데이터를 빠르게 검색할 수 있다.데이터 모델링특히, 관계형 데이터베이스에서 키를 사용하여 테이블 간의 관계를 정의하고 데이터 모델을 설계할 수 있다.  Key의 종류 기본 키 (Primary Key)각 레코드를 고유하게 식별하는데 사용되는 하나 이상의 속성(attribute)의 집합이다.기본 키는 고유해야하며, Null 값을 가질 수 없다. 후보 키 (Candidate Key)테이블 내의 각 레코드를 고유하게 식별할 수 있는 속성 또는 속성의 집합입니다.하나의 테이블에는 여러 후보 키가 있을 수 있으며, 그 중 하나가 기본 키로 선택된다. 대체 키..
Database와 DBMS
·
Computer Science/Database
데이터베이스란?일정한 규칙이나 규약을 통해 구조화되어 저장되는 데이터 모음.다양한 형태와 구조로 존재하며 사용자나 애플리케이션이 데이터를 효율적으로 저장하고 검색할 수 있도록 설계되어 있다. 데이터 무결성:데이터베이스는 데이터의 일관성과 정확성을 유지하는 데 도움을 준다.데이터 보안:사용자 접근 권한을 설정하여 민감한 데이터를 보호할 수 있다.효율적인 데이터 관리:대량의 데이터를 효율적으로 저장하고 검색할 수 있다.데이터 중복 최소화:데이터베이스는 데이터 중복을 줄이고 저장 공간을 절약하는 데 기여한다.    주요 설계 개념엔티티(Entity)데이터베이스에서 관리해야 할 대상이나 객체를 모델링한 것.DB내에서 하나의 고유하게 식별될 수 있는 속성들을 가짐.실 세계의 사물, 개념, 사람 등을 나타낼 수 있..
큐(Queue) - Array와 LinkedList로 구현, 원형큐, 덱/데크(Deque)
·
Computer Science/Data Structure
큐란?큐는 FIFO(First In First Out) 원칙을 따르는 선형 데이터 구조이다. 즉, 삽입된 순서대로 삭제가 처리된다.   큐 연산 주요 연산인 enqueue, dequeue 외에도 peek(front), empty, size 등의 연산이 있다.enqueue: 큐의 뒤(rear) 끝에 새로운 데이터를 추가하는 연산dequeue: 큐의 앞(front) 끝에서 데이터를 제거하고 반환하는 연산front 또는 peek: 큐의 앞에 있는 데이터를 제거하지 않고 반환하는 연산empty: 큐가 비어 있는지 확인하는 연산size: 큐에 있는 데이터의 개수를 반환하는 연산   큐 구현큐도 스택과 마찬가지로 배열이나 연결 리스트를 사용하여 구현할 수 있다.데이터 크기 예측 가능한 경우         ->  ..
스택(Stack) - Array와 LinkedList로 구현
·
Computer Science/Data Structure
스택이란?LIFO(Last In First Out) 구조를 갖는 자료구조를 말한다. 즉, 나중에 삽입된 데이터가 먼저 삭제되는 구조이다.데이터를 일시적으로 저장할 때 매우 유용한 선형 데이터 구조이다.   스택 연산스택에는 push, pop과 같은 주요 연산과 peek(top), empty, size 등의 연산을 가질 수 있다. push: 스택의 맨 위에 데이터를 삽입하는 연산pop: 스택의 맨 위에 있는 데이터를 삭제하고 반환하는 연산peek 또는 top: 스택의 맨 위에 있는 데이터를 삭제하지 않고 반환하는 연산empty: 스택이 비어 있는지를 확인하는 연산size: 스택에 있는 데이터의 개수를 반환하는 연산   구현스택은 배열이나 연결리스트를 사용하여 구현할 수 있다.데이터 크기 예측 가능한 경우 ..
[백준/Gold IV] 단어 수학 - 1339
·
코딩 테스트 정복기/백준
[Gold IV] 단어 수학 - 1339문제 링크 성능 요약메모리: 11760 KB, 시간: 72 ms분류그리디 알고리즘제출 일자2024년 11월 1일 22:43:07문제 설명민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다.단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다.예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 ..
[백준/Gold IV] 카드 정렬하기 - 1715
·
코딩 테스트 정복기/백준
[Gold IV] 카드 정렬하기 - 1715문제 링크 성능 요약메모리: 24156 KB, 시간: 316 ms분류자료 구조, 그리디 알고리즘, 우선순위 큐제출 일자2024년 11월 1일 19:41:12문제 설명정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 ..