Algorithm - 재귀(recursive)
·
Algorithm
재귀란? 어떤 사건이 자기 자신을 포함하고 있거나 또는 자기 자신을 사용하여 정의하고 있을 때 이를 재귀적이라고 함 재귀에 관한 기본적인 내용은 https://dusen0528.tistory.com/31?category=991091 를 참고하도록 하자 가장 기초적인 재귀 팩토리얼에 대해 알아보자 5!의 경우 5*4*3*2*1 = 120이다. 재귀의 핵심 포인트는 종료조건과 재귀조건이다. 위의 식을 보면 알 수 있듯이 n*(n-1)*(n-2)..등의 패턴이 반복되는 것을 알 수 있다. 이를 코드로 옮기면 import java.util.Scanner; public class Factorial { static int factorial(int n){ if(n>0) return n*factorial(n-1); e..
Algorithm - Stack & Queue
·
Algorithm
Stack 후입선출 Last In Frist Out 순서를 가진 자료구조 자세한 내용은 https://dusen0528.tistory.com/43 이 게시글을 참고하자 public class Stack1{ private int[] stk; //스택용 배열 정수 private int capacity; //스택 용량 private int ptr; //스택 포인터 public class EmptyIntStackException extends RuntimeException{ //실행 시 예외 : 스택이 비어있음 public EmptyIntStackException(){ } } public class OverflowIntStackException extends RuntimeException{ public Over..
Algorithm - 검색 알고리즘
·
Algorithm
검색 알고리즘 데이터의 집합에서 원하는 값을 가진 요소를 찾아내는 검색 알고리즘 주소록을 검색한다고 가정하면 다음과 같은 방법으로 이루어진다. 1. 국적이 한국인 사람을 찾는다 2. 나이가 21세 이상 27세 미만인 사람을 찾는다 3. 찾으려는 이름과 가장 비슷한 이름을 가진 사람을 찾는다 위의 방법들을 보면 특정 항목에 주목한다는 공통점이 있다. 이때 주목하는 항목을 키라고 칭한다. 1. 선형 검색 : 무작위로 늘어서 있는 데이터 모임에서 검색을 수행한다 2. 이진 검색 : 일정한 규칙으로 늘어서 있는 데이터 모임에서 아주 빠른 검색을 수행한다. 3. 해시법 : 추가, 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색을 수행한다. - 체인법 : 같은 해시값의 데이터를 선형 리스트로 연결하는 방법 -..