STUDY/Algorithm 2

Algorithm (1)

지금까지 취업 준비를 위해 코딩 테스트를 위해 수많은 알고리즘 문제를 풀어보았다. 그렇다면 나는 알고리즘 그 자체에 대하여 얼마나 알고 푸는 것일까? 라는 궁금증으로 이와같은 카테고리를 생성하여 그저 테스트만을 위한 알고리즘 공부가 아닌 순수히 알고리즘 자체를 이해하는 시간을 가져보고자 한다. 1. 그리하여 알고리즘이란? 간단히 설명하자면, 알고리즘은 결국 문제를 해결하는 단계적 절차 또는 방법, 명령어들의 집합이라고 할 수 있다. 알고리즘은 컴퓨터에만 적용되는것은 아니다. 예를 들어, 컴퓨터가 이해하지 못하는 의사코드를 통한 알고리즘 혹은 수학적인 이론에서 발생한 알고리즘이 있을 수 있다. 1.1 알고리즘의 일반적인 특성은? - 정확성 : 주어진 입력에 대하여 올바른 해를 출력해야한다. - 수행성 : ..

STUDY/Algorithm 2022.04.05

Trie 자료 구조 알고리즘 만들기

알고리즘 문제를 풀다보면 문자열을 다루고 원하는 문자열을 검색하는 문제를 만날때가 종종 있다. 그때마다 Trie 자료 구조에 대해 찾아보곤 하는데 매번 까먹어서 잊지 않을려고 직접 기록해본다. 우선 Trie의 개념에 대해 이야기 해보겠다. Trie 자료 구조의 개념 Trie는 트리 형태의 자료 구조로 문자열을 빠르게 저장하고 검색하기 위해 사용되는데 사용한다. 개념을 이해하는 것은 어렵지 않았지만 막상 코드를 작성하면서 내가 대충 이해하고 넘어갔구나 생각하게 됬다. static class Trie{ boolean isLast = false; //현재 노드의 자식 노드 배열을 만든다. //배열의 크기는 영어 소문자를 기준으로 26개. Trie[] childNodes = new Trie[26] } 기본적으로..

STUDY/Algorithm 2021.07.01