본문 바로가기

코딩테스트11

자료구조 - 큐(Queue) 큐(Queue) 이란? 큐(Queue)는 데이터를 선형 구조로 저장하는 자료구조로, FIFO(First-In-First-Out, 선입선출) 원칙을 따릅니다. 이는 처음 추가된 데이터가 처음으로 제거되는 구조를 의미합니다. 즉, 가장 먼저 저장된 요소가 가장 먼저 나오는 특징을 가지고 있습니다. 새로운 데이터는 큐의 뒷부분에 추가되고, 데이터는 큐의 앞부분에서 제거됩니다. 이로써 데이터는 일렬로 정렬되어 관리됩니다. 주로 데이터 처리 과정에서 선입선출의 원칙이 필요한 경우에 큐가 활용됩니다. 큐 코드 예시 (C#) 아래 코드는 C#에서 queue 활용의 예시입니다. using System; using System.Collections.Generic; public class QueueExample { pub.. 2024. 3. 26.
자료구조 - 스택(Stack) 스택(Stack) 이란? 스택(Stack)은 데이터 구조 중 하나로, 후입선출(LIFO, Last In First Out)의 원리를 따릅니다. 이 말은 가장 최근에 추가된 항목이 가장 먼저 제거되는 구조를 의미합니다. 새로운 데이터는 스택의 맨 위에 추가되며, 마지막에 추가된 데이터가 먼저 제거됩니다. 주로 함수 호출, 재귀 알고리즘, 괄호 검사, 미로 탐색 등과 같은 다양한 응용 프로그램에서 사용됩니다. 스택은 데이터를 저장하고 접근하는데 유용하며, 특히 데이터의 순서가 중요한 경우에 많이 활용됩니다. 스택 코드 예시 (C#) 아래 코드는 C#에서 stack 활용의 예시입니다. using System; using System.Collections.Generic; public class StackExam.. 2024. 3. 24.
정렬 알고리즘 - 병합 정렬 (Merge sort) 병합 정렬 (Merge sort) 이란? 병합정렬(Merge Sort)은 분할정복 알고리즘의 일종으로, 주어진 배열을 반으로 나눈 뒤 각 부분 배열을 재귀적으로 정렬하고 병합하는 과정을 반복하여 전체 배열을 정렬하는 알고리즘입니다. 병합정렬은 아래와 같은 과정으로 진행됩니다. 분할(Divide) : 입력 배열을 절반으로 나눕니다. 이 과정은 배열을 가능한 한 작은 크기의 부분 배열로 분할합니다. 정복(Conquer) : 분할된 부분 배열을 재귀적으로 정렬합니다. 각 부분 배열은 더 이상 분할할 수 없을 때까지 정렬됩니다. 병합(Combine): 정렬된 부분 배열을 다시 하나의 배열로 병합합니다. 이 때, 정렬된 부분 배열을 비교하여 정렬된 새로운 배열을 만듭니다. 병합정렬은 주어진 배열을 반으로 나누어 .. 2024. 3. 23.
분할 정복 알고리즘 (Divide and Conquer) 분할 정복 알고리즘 분할정복(Divide and Conquer)은 문제를 작은 부분으로 나누어 해결하는 알고리즘 설계 전략입니다. 이 방법은 주어진 문제를 세 단계로 나누어 처리합니다: 분할(Divide): 주어진 문제를 더 작고 해결하기 쉬운 작은 부분 문제들로 분할합니다. 이때, 문제는 일반적으로 동일한 크기의 작은 부분 문제들로 분할됩니다. 정복(Conquer): 분할된 작은 부분 문제들을 각각 해결합니다. 보통 재귀적으로 작은 부분 문제를 해결하는 방식을 사용합니다. 결합(Combine): 작은 부분 문제들의 해를 결합하여 원래 문제의 해를 얻습니다. 이 과정에서 분할된 문제들의 해를 결합하여 최종 해를 얻습니다. 분할정복은 문제를 더 작고 해결하기 쉬운 작은 부분 문제들로 분할함으로써 전체적인 .. 2024. 3. 22.