![[DataStructure] 스택 & 큐 (Stack & Queue)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG1xRQ%2FbtsFZJb8ulM%2FTl7JEwlVnHiANgN7kEKks0%2Fimg.png)
오늘은 다른 알고리즘에서 많이 사용되기 때문에 꼭알아야할 자료구조인 Stack과 Queue에 대해서 알아보자 Stack 퇴적(堆積) 스택 어떤 것을 쌓아 올림을 뜻하는 단어이다. 데이터들을 저공간에 쌓아 올리는 방식이다. 코딩에서는 list 즉 배열에 데이터를 담는 방식이다. array = {1,2,3,4,5}; stack = {1,2,3,4,5}; 위 코드는 배열과 스택에 1부터 5까지의 정수를 담아뒀다. 2개는 차이가 없다. stack은 array와 값을 저장하는 방식이 같다. 그럼 왜 stack이라고 부를까? LastInFirstOut(LIFO) 즉 마지막으로 담은 데이터를 처음으로 빼는 배열이 있다면 그것이 바로 stack이다. 이를 후입선출 이라고 부른다. 1. 스택 동작 방식 스택은 크게 2가..
![[Algorithm] 재귀 (recursive)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGvIEu%2FbtsFJ2xNbwq%2FDmOBQAlkXaYhu0K93PqU01%2Fimg.png)
재귀함수 재귀함수(再歸函數, recursion) 어떤 것을 정의할 대 자기 자신을 참조하는 것을 뜻한다. 즉 함수가 자기 자신을 계속 호출한다는 의미이다. recursive라는 함수가 있다고 생각하자. recursive는 자기 자신을 다시 호출한다. 함수 recursive(int x){ recursive(int x + 1) } 간단히 다음과 같은 방식을 따른다. 이를 그림으로 한번 보자. 재귀적 호출을 통해서 자신의 함수속에 또다른 함수를 실행하고 가장 늦게 실행된 함수부터 먼저 재귀 반환한다. 이번엔 예시코드로 동작 방식을 보자. 1. 재귀함수 동작 방식 재귀함수는 크게 4가지 방식을 따른다. 물론 이방법에서 순서는 코드에 따라서 변경될 수 있다. 값을 받는다. 종료 조건을 설정해서 종료될지 중지될지 ..