본문 바로가기
728x90

자료구조_알고리즘16

알고리즘) 재귀 - 피보나치 수열 피보나치 수열 앞의 두 수의 합이 다음 항인 수열 0 1 1 2 3 5 8 13 피보나치 수열을 코드로 구현 피보나치 수열의 n 번째 값을 구하는 함수 function fibonacci(n) { if ( n 2022. 3. 28.
자료구조/알고리즘) 재귀 재귀 어떤 함수가 자기 자신을 호출하는 것으로 어떤 문제를 더 작은 동일한 구조의 반복으로 생각하여 문제를 해결하는 방법 모든 재귀 함수는 반복문으로 표현할 수 있지만, 대부분 재귀 코드가 간결하고 이해하기 쉽다 재귀의 사용을 고려해봐야 할 때 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우 중첩 반복문이 많거나 중첩 횟수를 예측하기 어려운 경우 알고리즘 문제에서 많이 사용된다 재귀 함수의 실행 function sum(num) { if(num === 0){ return 0; } if(num === 1){ return 1; } return num + sum(num - 1); } num이 0이거나 1이 아닐 경우 num + sum(num - 1)을 반환한다 sum(4)의 경우 return 4.. 2022. 3. 22.
자료구조) 자료구조 - Queue queue 큐는 대기 행렬 이라는 뜻으로 데이터 들이 들어간 순서대로 사용된다 선입 선출(FIFO - First In First Out) 구조 queue의 사용 예 프린터에서 작업 페이지를 순서대로 인쇄하는 것과 같다 queue - 프린터가 작업중이면 queue에 데이터를 순서대로 쌓아둔다 프린터가 작업을 마치면 가장 먼저 들어온 데이터를 프린터로 보냄 프린터 - queue에서 보낸 데이터를 사용 위와 같이 각 프로그램간 존재하는 처리 속도 차이로 인해 데이터가 대기해야할 경우 사용 class를 활용한 queue 구현 class Queue { constructor() { this.storage = {}; this.front = 0; this.rear = 0; } size() { return this.re.. 2022. 3. 18.
자료구조) 자료구조 - Stack stack 스택은 '쌓다' 라는 뜻으로 데이터를 순서대로 쌓는 구조 데이터를 쌓고 위에 쌓인 데이터 부터 사용한다 선입 후출(FILO - First In Last Out) stack의 사용 예 브라우저의 뒤로가기, 앞으로가기 기능을 2개의 스택을 이용해 구현한다 prevStack - 뒤로가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 nextStack에 저장 현제 페이지 nextStack - 앞으로 가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 prevStack에 저장 class를 통한 stack 구현 class Stack { constructor() { this.storage = {}; this.top = 0; } size.. 2022. 3. 18.
728x90