Choose a default theme

You can change your theme from the menu

SARO

높이 불변식과 네 가지 회전부터 삽입·삭제·순위·범위 질의까지 구현하고, 삭제 72,000회와 혼합 연산 10,000회 등으로 검증하는 균형 이진 탐색 트리 안내. AVL 트리는 모든 노드에서 왼쪽과 오른쪽 서브트리 높이의 차이를 1 이하로 유지하는 이진 탐색 트리다. 키가 작으면 왼쪽, 크면 오른쪽에 두는 검색 순서는 유지하면서, 삽입·삭제로 한쪽이 길어지면 회전으로 모양을 조정한다. 정렬된 입력에도 검색 경로가 선형 사슬로

0

키의 순서 불변식부터 검색·삽입·세 가지 삭제, 경계·범위 질의, 회전과 크기 보강을 직접 구현하고, 72,000번 삭제 등 재현 가능한 테스트로 검증하는 이진 탐색 트리 안내. 이진 탐색 트리(binary search tree, BST)는 각 노드의 키를 기준으로 더 작은 키와 더 큰 키를 서로 다른 서브트리에 배치하는 이진 트리다. 노드를 찾을 때 현재 키와 비교한 결과에 따라 한쪽만 내려가므로 전체를 매번 순회하지 않아도

0

WSL(Windows Subsystem for Linux)은 Windows에서 Linux 배포판과 명령줄 도구를 실행할 수 있도록 제공되는 기능이다. Windows의 개발 도구와 Linux의 실행 환경을 함께 사용하는 데 쓰인다. WSL 자체의 버전, 각 배포판의 WSL 1·WSL 2 실행 방식, 배포판 버전은 서로 다른 정보다. WSL 2는 가상화 기술을 이용해 관리되는 경량 가상 머신 안에서 Linux 커널을 실행한다. 사

0

운영체제(operating system, OS)는 CPU·메모리·저장 장치 같은 자원을 관리하고 응용 프로그램이 실행될 환경을 제공하는 시스템 소프트웨어이다. 프로그램은 하드웨어를 매번 직접 제어하는 대신 운영체제가 제공하는 프로세스, 주소 공간, 파일과 같은 추상화를 이용한다. 문서 편집기와 음악 재생기가 동시에 실행된다고 가정하자. 두 프로그램이 CPU와 메모리, 파일 장치를 아무 규칙 없이 독점하면 다른 작업을 진행하기

0

macOS는 Apple의 Mac 컴퓨터용 운영체제이다. Finder와 Dock 같은 그래픽 환경, 응용 프로그램 프레임워크, Unix 계열의 명령줄 환경을 함께 제공한다. Mac은 컴퓨터 제품군의 이름이고 macOS는 운영체제의 이름이므로, 두 용어를 문서와 문제 보고에서 구별하는 것이 정확하다. macOS의 기반에는 Darwin 계열 구성 요소가 있으며 커널은 Mach·BSD 계통의 기술과 Apple의 구성 요소를 결합한다.

0

Windows(윈도우)는 Microsoft가 개발하는 운영체제 제품군이다. 이 문서는 오늘날의 Windows NT 계열을 중심으로 응용 프로그램 실행, 사용자 모드와 커널 모드, 파일 경로 및 개발 도구의 관계를 설명한다. 개별 버전의 설치 요구 사항이나 지원 종료일은 버전별 공식 문서에서 확인해야 한다. Windows는 하드웨어 자원을 관리하고 응용 프로그램이 실행될 기반을 제공한다. 파일 탐색기는 파일을 다루는 그래픽 인터

0

Linux(리눅스)는 좁게는 운영체제의 핵심인 커널을, 넓게는 이 커널을 사용하는 운영체제 계열을 가리킨다. 커널은 CPU 실행 시간, 메모리, 장치와 네트워크를 관리한다. 사용자가 설치하는 Ubuntu·Debian 같은 배포판은 여기에 명령줄 도구, 라이브러리, 패키지 관리 체계와 응용 프로그램을 결합한 시스템이다. Linux 커널과 배포판은 같은 범위의 이름이 아니다. 커널 버전이 같아도 배포판이 제공하는 패키지 버전과 기

0

이진 트리의 모양·높이·순회를 구분하고 재귀와 반복 구현, 순환·공유 검사, 직렬화·복원, 지름·균형·수식 평가를 실제 예제로 설명한다. 이진 트리(binary tree)는 각 노드가 왼쪽과 오른쪽이라는 두 자식 위치를 갖는 트리다. 각 위치는 비어 있거나 다른 이진 트리의 루트를 가리킨다. 루트가 없는 빈 트리도 정의에 포함할 수 있다. 왼쪽만 있는 노드와 오른쪽만 있는 노드는 다른 구조다. 문서의 예제 트리는 A를 루트로

0

완전 이진 트리의 배열 표현과 힙 불변식, 삽입·삭제·heapify의 원리를 설명하고 동률·갱신·취소·상위 k개·다중 병합·최단 거리 예제를 검증한다. 이진 힙(binary heap)은 완전 이진 트리의 모양과 부모·자식 간 우선순위 규칙을 함께 유지하는 자료구조다. 최소 힙에서는 부모가 자식보다 크지 않고, 최대 힙에서는 부모가 자식보다 작지 않다. 이 국소 규칙 덕분에 루트에서 전체의 최솟값 또는 최댓값을 얻을 수 있다.

0

배열의 인덱스·메모리 배치·길이와 용량을 설명하고 삽입·삭제, 복사와 뷰, 다차원 인덱싱, 누적 합·차분·압축을 실행 예제와 경계 검사로 살펴본다. 배열(array)은 여러 원소를 인덱스로 구분하여 다루는 자료구조다. 기본적인 연속 배열 모델에서는 같은 크기의 슬롯이 차례로 놓이며 시작 위치와 인덱스로 각 슬롯의 위치를 계산할 수 있다. 연결 리스트처럼 앞 원소의 링크를 따라가야만 다음 위치를 알 수 있는 구조와 차이가 있다.

0

연결 리스트의 노드·링크·소유권을 설명하고 단일·이중 연결 구현, 역순 변환, 순환 검출, 정렬 병합과 LRU 캐시를 예제 및 기준 모델 대조로 살펴본다. 연결 리스트(linked list)는 값과 다음 노드의 위치를 묶은 노드들을 연결하여 순서를 표현하는 자료구조다. 배열에서는 시작 주소와 원소 크기로 i번째 위치를 계산하지만, 연결 리스트에서는 앞 노드가 다음 노드를 가리킨다. 논리적으로 이웃인 원소가 메모리에서도 이웃일

0

덱은 앞과 뒤에서 원소를 넣고 꺼내는 양방향 큐다. 원형 배열 구현, 언어별 계약, 제한 용량과 회전, 단조 덱의 윈도 최댓값과 0-1 BFS를 실제 예제와 기준 구현 대조로 설명한다. 덱(deque)은 double-ended queue의 줄임말로, 앞과 뒤에서 원소를 넣고 꺼낼 수 있는 양방향 큐다. 보통 앞 삽입·뒤 삽입·앞 제거·뒤 제거의 네 연산을 제공한다. 한쪽에서 넣고 반대쪽에서 빼면 FIFO 큐,같은 쪽에서 넣고

0

공간 복잡도는 입력 증가에 따른 최대 저장 공간을 분석한다. 입력·출력·보조 공간, 복사와 참조, 재귀·제너레이터·캐시를 구분하고 LCS·배낭의 공간 압축과 실제 메모리 측정을 검증 예제로 설명한다. 공간 복잡도(space complexity)는 입력 크기가 늘 때 알고리즘이 사용하는 저장 공간이 어떻게 증가하는지 분석하는 개념이다. 특정 컴퓨터에서 몇 MB를 썼는지 측정하는 것과 관련은 있지만 같은 수치는 아니다. 입력·출력

0

큐는 먼저 넣은 항목부터 꺼내는 FIFO 자료형이다. 원형 버퍼 구현과 BFS, 작업 큐의 역압·완료·종료·동시성 정책을 실행 예제와 4,000단계 모델 검사, 16,384개 최단 거리 대조로 설명한다. 큐(queue)는 원소를 뒤에 넣고 앞에서 꺼내는 선입선출, 즉 FIFO 순서를 가진 추상 자료형이다. enqueue 또는 put은 대기열에 넣고, dequeue 또는 get은 가장 먼저 들어온 원소를 제거하며 반환한다. 맨

0

스택은 마지막에 넣은 값을 먼저 꺼내는 LIFO 자료형이다. 기본 구현과 경계 오류에서 출발해 괄호 검사, 수식 변환·평가, DFS 프레임, 실행 취소, 최솟값·단조 스택을 예제와 완전 열거 검사로 설명한다. 스택(stack)은 마지막에 넣은 원소를 먼저 꺼내는 후입선출, 즉 LIFO 규칙을 가진 추상 자료형이다. 원소를 넣는 push, 맨 위 원소를 제거하며 반환하는 pop, 제거하지 않고 보는 peek 또는 top이 핵심

0

동적 배열은 길이와 내부 용량을 구분하고 필요할 때 저장소를 확장하는 자료구조다. 두 배 확장 구현, 복사 횟수 분석, 삽입·삭제와 축소 진동, 참조 수명, 예약·메모리·동시성의 한계를 실행 예제와 모델 기반 검사로 설명한다. 동적 배열(dynamic array)은 원소를 순서대로 담는 내부 배열을 사용하면서 필요한 경우 더 큰 저장 공간으로 옮겨 길이를 늘리는 자료구조다. 배열 인덱스로 원소를 읽는 장점과 실행 중 원소를 추

0

이분 탐색은 단조적인 비교·판정 결과를 이용해 후보 구간을 줄이며 경계를 찾는 알고리즘이다. 이 문서는 lower·upper bound, 중복과 범위 조회, 최소 용량과 정수 제곱근 응용, 정확성·종료 증명과 실제 대조 검사를 설명한다. 이분 탐색(binary search), 또는 이진 탐색은 비교나 판정 결과를 이용해 후보 구간의 한쪽을 버리며 답을 찾는 방법이다. 정렬된 배열의 값 검색이 대표적이지만, 더 일반적으로는 거짓

0

자료 구조는 데이터를 저장하고 찾기·추가·삭제·순회 같은 연산을 지원하는 방식이다. 이 문서는 배열·연결 리스트·스택·큐·해시·트리·힙을 실제 예제로 비교하고, 참조 공유와 동점 처리, LRU 캐시 구현과 검증까지 설명한다. 자료 구조는 데이터를 조직해 저장하고 필요한 연산을 지원하는 방식이다. 원소를 어디에 두는가뿐 아니라 찾기·추가·삭제·순회가 어떻게 동작하며 무엇을 보장하는지가 중요하다. 같은 값 목록도 배열, 연결 리스

0

시간 복잡도는 입력 크기에 따른 알고리즘 작업량의 증가를 분석한다. 이 문서는 O·Ω·Θ, 최선·최악·기댓값·분할 상환 분석을 구분하고, 반복문·재귀·복사·해시·전처리 비용을 실제 연산 횟수 예제로 계산한다. 시간 복잡도는 입력 크기에 따라 알고리즘의 작업량이 어떻게 증가하는지 표현하는 개념이다. “이 함수는 0.2초 걸린다”는 특정 실행의 측정과 다르다. 같은 알고리즘도 컴퓨터, 언어, 입력 내용에 따라 실제 시간이 달라지므

0

알고리즘은 문제의 입력을 올바른 출력으로 바꾸는 계산 절차다. 이 문서는 탐색·정렬·완전 탐색·탐욕법·동적 계획법·그래프를 실제 예제로 설명하고, 정확성의 근거와 시간·공간 비용, 전제 위반과 검증 방법을 함께 다룬다. 알고리즘은 주어진 문제를 해결하기 위해 수행하는 명확한 절차다. 프로그램이 특정 언어와 실행 환경에서 동작하는 구현이라면, 알고리즘은 그 구현이 따라야 하는 계산의 방법에 초점을 둔다. 같은 탐색 절차를 Pyt

0

SQLite는 애플리케이션 안에서 실행되는 SQL 데이터베이스 엔진이다. 이 문서는 파일과 연결의 관계, 자료형과 제약, 트랜잭션·쓰기 경쟁·WAL·백업을 실제 예제로 살펴보고, 로컬 저장소를 설계하고 운영할 때의 판단 기준을 설명한다. SQLite는 애플리케이션 내부에서 실행되는 관계형 데이터베이스 엔진이다. 별도의 데이터베이스 서버에 네트워크 요청을 보내는 대신, 프로세스에 연결된 라이브러리가 SQL을 처리하고 파일을 읽고

0

SQL은 관계형 데이터베이스의 구조와 데이터를 조회·변경하는 언어다. 이 문서는 고객과 주문 예제를 통해 조회·조인·집계·트랜잭션의 결과를 추적하고, NULL·중복·동시성·실행 계획에서 자주 생기는 오류와 해결 방법을 설명한다. SQL은 관계형 데이터베이스에서 자료 구조를 정의하고 데이터를 조회·변경하며 접근과 트랜잭션을 다루는 언어다. 테이블에서 필요한 행과 열을 고르고, 여러 테이블의 관계를 연결하고, 그룹별 합계나 순위를

0

TypeScript는 JavaScript에 정적 타입 검사와 타입 표현을 더한다. 이 문서는 타입 추론·유니온·제네릭·객체 모델을 실제 예제로 설명하고, 컴파일 오류 수정과 외부 주문 데이터 검증을 통해 타입 검사와 런타임 검증의 역할을 구분한다. TypeScript는 JavaScript 코드에 정적 타입 정보를 붙이고 실행 전에 여러 종류의 불일치를 찾아내는 언어와 도구 체계다. 함수가 숫자를 받는다고 선언했는데 문자열을 전

0

JavaScript는 웹 브라우저와 서버 등에서 사용되는 프로그래밍 언어다. 이 문서는 값과 타입 변환, 객체와 클로저, 비동기 실행, 화면과 데이터 경계를 예제로 설명하고, 고객별 주문 합계 기능을 구현하고 검증하는 과정까지 다룬다. JavaScript는 웹 페이지의 동작뿐 아니라 서버와 여러 실행 환경에서 사용하는 범용 프로그래밍 언어다. ECMAScript는 핵심 언어 규칙을 정의하고, 브라우저나 Node.js 같은 호스

0