fibonacci

    [자료구조] 순환 (Recursion) - 팩토리얼, 거듭제곱 계산, 피보나치 수열, 하노이의 탑, 영역 채색

    1. 순환 1.1 순환이란? 순환(Recursion)은 컴퓨터 과학에서 재귀라고도 하며 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다. 순환은 알고리즘을 해결하는데 사용되는 일종의 프로그래밍 기법이며, 트리 자료구조를 공부하기에 앞서 간단하게 알아보자. 1.2 반복 vs 순환 프로그래밍 언어에서 같은 일을 반복하기 위한 방법에는 반복(iteration)과 순환(recursion)이 있다. 반복이란 for나 while 등의 반복문을 사용하여 조건이 만족할 때까지 계속하여 반복시키는 방식이다. 순환은 위에서 말한대로 method가 자기 자신을 다시 호출하는 방식을 의미한다. 일반적으로 순환은 method 호출을 하게 되므로 반복에 비해 수행 속도가 떨어진다. 하지만, 필요한 경우 순환을 사용하면 반..

    [자료구조] 큐 (Queue) - 피보나치 수열 계산, BFS

    1. 큐 (Queue) 1.1 큐? 큐(Queue)란 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 놀이동산의 놀이기구를 타기 위해 줄을 서있는 모습을 생각하면 이해하기 편할 것이다. 1.2 큐 ADT 객체 FIFO 접근방법을 유지하는 동일한 자료형의 요소들의 모음 연산 enqueue(x) : 요소 x를 큐의 맨 뒤에 추가 dequeue() : 큐의 맨 앞의 요소를 삭제하고 반환 peek() : 큐의 맨 앞의 요소를 삭제하지 않고 반환 isEmpty() : 큐가 비어있으면 true 아니면 false 반환 isFull() : 큐가 가득 차 있으면 true 아니면 false 반환 size() : 큐 내의 모든 요소 개수를 반환 display() : 큐 ..