본문 바로가기

Algorithm[Java]16

Lowest Common Ancestor of a Binary Tree 최소 공통 조상 알고리즘 [LeetCode 236] 최소 공통 조상 이진 트리(Binary Tree)에서 최소 공통 조상(Lowest Common Ancestor)이란, 서로 다른 두 노드의 조상 노드 집합을 각각 A와 B라고 할 때, 교집합(A n B)에 속하는 원소 중 가장 하위에 존재하는 노드를 의미합니다. 여기서 조상 노드 집합이라는 개념은, 본 노드를 포함하는 개념임을 주의해야 합니다. 예를 들어서 A 노드의 조상 노드 집합에는, A노드보다 상위에 직 / 간접적으로 연결되어 있는 노드 뿐 아니라, A 노드도 포함이 됩니다. 위 이진 트리(Binary Tree)에서 A노드와 B노드의 최소 공통 조상을 찾아보겠습니다. A와 B의 공통 조상은 핑크색으로 표시해 두었습니다. 이 핑크색으로 표시된 노드 중 가장 하위에 존재하는 노드인 5가 바로 A와 B의.. 2024. 4. 1.
Lower Bound와 Upper Bound의 이해와 구현 안녕하세요, 오늘은 오름차순으로 정렬된 배열이 주어져 있을 때에, 이 배열에서 특정 값의 Lower Bound와 Upper Bound를 어떻게 찾을 수 있는가에 대해서 설명을 드리도록 하겠습니다. 먼저 Lower Bound와 Upper Bound가 무엇인지 설명을 드리도록 하겠습니다. Lower Bound와 Upper Bound "오름차순으로 정렬되어 있는 배열에서, 특정 값 보다 크거나 같은 값을 가지는 최소 인덱스를 바로 Lower Bound(하한)이라고 합니다. 이해하기 쉽게 그림으로 나타내자면 다음과 같습니다. 위 그림에서 오름차순으로 주어진 배열에 대하여, 6의 Lower Bound는 파란색의 화살표가 가리키는 곳이 됩니다. 위 배열에서 진하게 회색으로 색칠되어 있는 곳은 모두 6과 같거나 작은.. 2024. 2. 25.
Keys and Rooms [LeetCode 841 / Java] URL : https://leetcode.com/problems/keys-and-rooms/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 오늘은 전형적인 그래프 탐색 문제, Keys and Rooms문제를 풀어보도록 하겠습니다. 제가 알고리즘을 공부했던 초창기에 이런 문제들을 접하면서 많이 놀랐던 기억이 납니다ㅎㅎ 그래프면 노드(nod.. 2024. 1. 26.
Determine if Two Strings Are Close [Java / LeetCode 1657] URL : https://leetcode.com/problems/determine-if-two-strings-are-close/?envType=study-plan-v2&envId=leetcode-75 LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 오늘은 Hash Table로 분류된 알고리즘 문제, "Determine if Two String Are Close.. 2024. 1. 26.