본문 바로가기

알고리즘4

[알고리즘 독학] 재귀 알고리즘(1) 재귀의 기본 재귀의 기본 재귀적 : 어떤 사건이 자기 자신을 포함하고 다시 자가 자신을 사용하여 정의될 때 팩토리얼 구하기 1. 0! = 1 2. n > 0이면 n! = n × (n-1)! package search; import java.util.Scanner; public class Factorial { static int factorial(int n) { if(n > 0) { return n * factorial(n-1); } else { return 1; } } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int x = stdIn.nextInt(); .. 2022. 4. 11.
[알고리즘 독학] 큐(Queue) 큐 스택과 마찬가지로 데이터를 일시적으로 쌓아 놓은 자료구조 but 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출인 점이 스택과 다름 인큐 : 데이터를 넣는 작업 디큐 : 데이터를 꺼내는 작업 프런트(front) : 데이터를 꺼내는 쪽 리어(rear) : 데이터를 넣는 쪽 링 버퍼 사용 - 배열 요소를 앞쪽으로 옮기지 않는 큐 프런트(front) : 맨 처음 요소의 인덱스 리어(rear) : 맨 끝 요소의 하나 뒤의 인덱스(다음 요소를 인큐할 위치를 미리 지정) 1. 큐로 사용할 배열(que) : 인큐하는 데이터를 저장하기 위한 큐 본체용 배열 2. 큐의 최대 용량(max) : 큐의 최대 용량을 저장하는 필드 3. 프런트(front) : 인큐하는 데이터 가운데 첫 번째 요소의 인덱스를 저장하는 필드.. 2022. 3. 31.
[알고리즘 독학] 스택(Stack) 스택 데이터를 일시적으로 저장하기 위한 자료구조 가장 나중에 넣은 데이터를 가장 먼저 꺼냅니다. 스택만들기 스택 본체용 배열 : stk 스택 용량 : max 스택 포인터 : ptr 생성자 IntStack 푸시 메서드 push -스택이 가득차서 푸시 할 수 없는 경우 예외 OverflowIntStackException을 던집니다. 팝 메서드 pop -스택이 비어 있어 팝을 할 수 없는 경우 EmptyIntStackException을 던집니다. 피크 메서드 peak -꼭대기에 있는 데이터를 “몰래 엿보는” 메서드 -스택이 비어 있는 경우 예외 EmptyIntStackException을을 던집니다. 검색 메서드 indexOf -검색을 성공면 찾아낸 요소의 인덱스를 반환하고 실패하면 -1을 반환합니다. 스택의 .. 2022. 3. 29.
[알고리즘 독학] 검색 알고리즘 개념(1) 검색기법 3가지 - 배열검색 - 선형 리스트 검색 - 이진검색트리 검색 배열 검색 - 선형검색 : 늘어놓은 데이터를 검색 - 이진검색 : 일정한 규칙으로 늘어놓은 데이터를 검색 - 해시법 : 추가, 삭제가 자주 일어나는 데이터를 검색 (체인법 : 같은 해시 값의 데이터를 선형 리스트로 연결하는 방법) (오픈 주소법 : 데이터를 위한 해시 값이 충돌할 때 재해시 하는 방법) 선형 검색 요소가 직선 모양으로 늘어선 배열에서의 검색 - 키 값을 갖는 요소를 만날 때까지 맨 앞부터 순서대로 요소를 검색 배열 검색의 종료 조건 1. 검색할 값을 발견하지 못하고 배열의 끝을 지나간 경우 2. 검색할 값과 같은 요소를 발견한 경우 package search; import java.util.Scanner; public.. 2022. 3. 24.