[알고리즘] 배열끼리 비교해서 배열의 포함 관계 확인하기
0. 들어가며 프로그래머스 후보키를 풀다가 배열이 다른 배열에 포함되는지 확인해야하는 상황이 발생했다. 생각보다 자주 사용되서 정리를 해보았다. 1. 사용 방식 [ 1, 2, 10, 30, 40 ]이란 배열이 있을 때, [ 2, 10, 30 ] 이란 배열이 포함되는지 확인할 때 사용한다. 2. 코드 구현 const answer = [ 1, 2, 10, 30, 40 ]; const key = [ 2, 10, 30 ]; let check = true; const set = new Set([...key, ...answer]); if (set.size === answer.length) { check = false; } key와 answer을 포함하는 set을 사용해서 구현하였다. set은 내부에 속성이 중복이 ..
2022. 9. 12.
[알고리즘] 재귀 함수를 이용한 트리 순회 알고리즘
재귀 함수를 이용하는 트리 순회는 전위 순회, 중위 순회, 후위 순회가 있다. 전위 순회 루트 노드를 방문하고, 왼쪽 서브 트리를 전위 순회한 뒤 오른쪽 서브 트리를 전위 순회하는 방식이다. 1 / \ / \ 2 3 / \ / \ 4 5 6 7 트리가 있다면 1. 루트 노드 [ 1 ] 을 방문한다. 2. [ 2 ]를 방문한다. 3. [ 2 ]의 왼쪽 서브 트리로 이동한다. 4. [ 4 ]를 방문한다. 5. [ 4 ]의 왼쪽, 오른쪽 서브 트리가 없으므로 올라간다. 6. [ 2 ]의 오른쪽 서브 트리로 이동한다. ... 방식으로 [ 1, 2, 4, 5, 3, 6, 7 ] 순서대로 순회한다. preorder(tree) { 방문(tree.root); preorder(tree.left); preorder(tre..
2022. 8. 26.