
데이터 집합에서 원하는 값을 가진 요소를 찾아내는 알고리즘을 검색 알고리즘이라 한다.검색 알고리즘은 데이터를 저장하는 자료구조에 영향을 많이 받는다.ex) 배열, 선형 리스트, 이진 트리 등...이번 게시글에서는 배열에서 검색을 하기위한 알고리즘을 사용하려 한다.배열에

이진 검색은 선형 검색과 다르게 키값으로 이미 정렬되어 있는 상태로선형 검색보다 빠르게 검색할 수 있다는 장점이 있다. (오름차순 또는 내림차순 등)이진 검색은 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘이다.그림과 같이 5를 검색하는 과정을 살

스택이란.데이터를 일시적으로 쌓아놓는 자료구조를 뜻한다.데이터 입출력 순서는 후입선출(LIFO: Last In First Out)이다.데이터를 넣는 작업을 'Push'라고 하고, 꺼내는 작업을 'Pop'이라고 한다.Push와 Pop이 이루어지는 꼭대기를 'TOP'이라고

큐란? >Queue란 스택과 마찬가지로 데이터를 일시적으로 쌓아두는 자료구조를 칭한다. 데이터 입출력 순서는 선입선출(FIFO: First In First Out)이다. Queue에 데이터를 넣는 작업을 'en-queue', 꺼내는 작업을 'de-queue'라고 한다

재귀란어떤 사건이 자기 자신을 포함하고 있거나 또는 자기 자신을 사용하여 정의하고 있을때를재귀적이라고 표현한다. 재귀의 개념을 사용하면 프로그램을 간결하게 작성할 수 있는 장점이 있다.재귀 호출을 이용하여 재귀를 표현한 이미지이다.코드로 직접 재귀 호출을 사용하여 이해

이번 포스팅에서는 재귀 알고리즘을 분석하는 방법을 알아보고재귀 알고리즘을 비재귀적으로 구현하는 방법을 알아보려고 한다.먼저 재귀 알고리즘을 분석해보자재귀 알고리즘 분석을 위해 하향식 분석과 상향식 분석을 두 방법으로알고리즘을 분석하는 방법을 살펴보려 한다.먼저 아래 재

하노이의 탑은작은 원반이 위에 큰 원반이 아래에 위치하도록 쌓은 원반을 3개의 기둥 사이에서 옮기는 문제다.모든 원반은 크기가 다르고 모든 원반은 최초 이 규칙에 맞게 첫 번째 기둥에 쌓여있다.이 상태에서 규칙에 맞도록 3번째 기둥으로 최소 횟수로 옮기는 것이다.하노이

깊이 우선 탐색이란루트 노드(혹은 다른 임의의 노드)를 시작점으로 트리나 그래프에서한 루트로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가 확인 후다른 루트로 탐색하는 방식을 말한다.일반적으로 재귀호출을 사용하여 구현하지만 단순한 스택 배열로도 구현이가능하다.주로 BF

Linked List란 말 그대로 연결된 리스트를 의미한다.리스트는 각 Node로 구성되어있으며, Node에는 데이터를 저장하는 필드와 다음 노드를 가리키는 Pointer로 구성되어 있다. 이러한 구조를 가진 자료구조를 Linked List라고 한다.Linked Lis

Tree란Node들이 나무가지처럼 연결된 비선형 자료구조를 뜻한다.Tree는 Tree내 또 다른 하위 Tree가 존재하며, 하위 Tree내 또 다른 하위 Tree가 존재하는재귀적 자료구조이다.상단 이미지와 같이 Tree는 이와 같은 구조로 표현할 수 있다.Tree는 다

🙋♂️ HashTable이란? > HashTable이란 HashTable 또는 HashMap은 키를 값에 매핑할 수 있는 구조를 가진다. 해시함수를 통해 해싱하여 key, value를 저장한다. 위의 이미지와 같이 key를 해시함수에 넣어 배열의 인덱스로 사용하

🙋♂️ Set이란? > Set이란 자바 컬렉션에 HashSet은 Set인터페이스의 구현 클래스이다. Set은 따로 저장 순서를 유지하지 않으며, 또한 중복 값을 허용하지 않는 특징이 있다. Set은 기본적으로 Array나 List처럼 순열 자료구조(Collect