본문 바로가기

재귀 알고리즘4

[Algorithm] 재귀 알고리즘 Tree UI 구현하기 Tree 자료구조 with 재귀 알고리즘 재귀 알고리즘을 사용하기 최적화된 환경이 바로 트리 자료구조다. 자식 노드들을 찾아가면서 해당 노드들을 반복적으로 렌더링 하는 과정에서 몇번의 반복이 예측하기 힘든 반복문 보다는 재귀 알고리즘이 적합하다. 문제 : 트리 구조의 데이터를 재귀함수를 이용해 렌더링 하세요 풀이 : 재귀 알고리즘을 구성할 때는 탈출 조건(base case)와 재귀 로직으로 구분해서 생각해야 한다. ① 첫번째 순서로 currentNode에 추가할 'li' 태그를 생성하고 자식 노드의 배열이 포함되어 있는지 여부를 체크한다. const res = document.createElement('li'); const hasChildren = Array.isArray(menu[i].children).. 2022. 5. 13.
[Algorithm] 러시아 전통인형 마트료시카 재귀 알고리즘 Matryoshka Algorithm Matryoshka는 러시아 전통 인형이다. 보통 과대 포장을 비판하기 위해서 사용되기도 하는데, 이 인형은 재귀 알고리즘에 찰떡이다. 객체로 구성된 Matryoshka 인형을 찾는 문제를 알아보자. 문제 : 마트료시카에 대한 정보를 담은 객체를 입력받아 조건에 맞는 인형이 있는지 찾는다. 결과값은 boolean 값으로 반환하며, 반복문 사용은 금지된다. 객체는 함수를 호출한 뒤 원본상태를 유지하는 얕은 복사를 해야 하며, 빈 객체를 입력받는 경우 false를 반환해야 한다. 객체의 size는 중첩될 수록 작아진다. 풀이 : 재귀 알고리즘이니 base case와 recursive case로 구분한다. 먼저 탈출 조건은 주어진 자연수 N과 객체내의 size를 비교한다. N과 size가 동일한 경우 true.. 2022. 5. 12.
[Algorithm] 재귀 알고리즘 배열 javascript 기본 문제 정리 Recursive Algorithm 기초 재귀 알고리즘은 base case 부터 시작한다. 먼저 탈출 조건을 세워놓고, 전체적인 문제를 분해해가면서 함수가 자신을 호출하는 구조를 세부적으로 구성하면서 답을 찾아낸다. [Algorithm] 재귀 알고리즘이란 recursion algorithm what is recursive algorithm? How can I solve recursion algorithm? 재귀 알고리즘 알고리즘에는 여러가지 방법이 존재한다. 그 중에서도 분할 정복법의 한 유형인 재귀 알고리즘은 문제를 더 작은 구조의 문제.. about-tech.tistory.com 간단한 재귀 알고리즘을 살펴보자. 정수의 합 정수를 받아서 1까지의 합을 구하는 문제를 풀어보자. 재귀의 단계가 반복되면서.. 2022. 5. 12.
[Algorithm] 재귀 알고리즘이란 recursion algorithm what is recursive algorithm? How can I solve recursion algorithm? 재귀 알고리즘 알고리즘에는 여러가지 방법이 존재한다. 그 중에서도 분할 정복법의 한 유형인 재귀 알고리즘은 문제를 더 작은 구조의 문제로 잘게 쪼개면서 연산을 분산시키는 방식이다. 만약 자연수로 구성된 배열의 총 합을 구하는 문제가 주어진다면 배열 전체를 더하기 보다는 배열을 잘게 쪼개는 방식으로 총합을 구할 수 있다. const arr = [1,2,3,4,5]; 첫번째 연산은 1과 [2,3,4,5]로 분리한다. 1 + [2,3,4,5] 1 + 2 + [3,4,5] 1 + 2 + 3 + [4,5] 1 + 2 + 3 + 4 + [5]; 더 이상 문제가 쪼개지지 않을 때 까지 함수 자신을 호.. 2022. 5. 12.