리트코드 - 208. Implement Trie (Prefix Tree) 출처 - https://leetcode.com/problems/implement-trie-prefix-tree/?envType=study-plan-v2&envId=top-interview-150 문제 설명 트라이(Trie) 또는 접두어 트리(prefix tree)는 문자열 데이터 집합에서 키(key)를 효율적으로 저장하고 검색하는 데 사용되는 트리 구조의 데이터 구조입니다. 이 데이터 구조의 다양한 응용 사례가 있으며, 자동완성 및 맞춤법 검사기 등이 있습니다. 트라이 클래스를 구현하세요: Trie() : 트라이 객체를 초기화합니다. void insert(String word) : 문자열 word를 트라이에 삽입합니다. boolea..
리트코드 - 230. Kth Smallest Element in a BST 출처 - https://leetcode.com/problems/kth-smallest-element-in-a-bst/?envType=study-plan-v2&envId=top-interview-150 문제 설명 이진 탐색 트리의 루트와 정수 k가 주어질 때, 트리 노드의 모든 값 중에서 k번째로 작은 값을 (1부터 시작하는 인덱스로) 반환하세요. 의사코드 min = 정수의 최대값 count = 0 함수 k번째 작은 값 (노드 root, int k) sortAscending(root, k) 함수 min 리턴 함수 sortAscending(노드 node, int k) if (node == null) return; sortAscendi..
리트코드 - 530. Minimum Absolute Difference in BST 출처 - https://leetcode.com/problems/minimum-absolute-difference-in-bst/?envType=study-plan-v2&envId=top-interview-150 문제 설명 이진 탐색 트리 (BST)의 루트가 주어질 때, 트리 내의 두 다른 노드 값 간의 최소 절대 차이를 반환하세요, 의사코드 prev 노드 선언 함수 최소값 int min = 최대 정수값 minValue 함수(매개변수 root, min) 함수 minValue if (node == null) min 리턴 min = minValue(node의 왼쪽, min) if (prev !=null) min = min과 (p..
리트코드 - 162. Find Peak Element 출처 - https://leetcode.com/problems/find-peak-element/?envType=study-plan-v2&envId=top-interview-150 문제 설명 피크 요소는 주변 요소보다 엄격하게 큰 요소를 의미합니다. 0-인덱스 정수 배열 nums가 주어지면, 피크 요소를 찾아서 해당 인덱스를 반환해야 합니다. 배열에 여러 개의 피크가 있을 경우, 그 중 하나의 피크의 인덱스를 반환하면 됩니다. 여기서 nums[-1] = nums[n] = -∞라고 가정합니다. 다시 말해, 배열 바깥에 있는 이웃 요소보다 요소는 항상 엄격하게 크다고 간주됩니다. O(log n) 시간 내에 실행되는 알고리즘을 작성해야 합니다. 의사코드 왼쪽..
리트코드 - 148. Sort List 출처 - https://leetcode.com/problems/sort-list/?envType=study-plan-v2&envId=top-interview-150 문제 설명 연결 리스트의 head가 주어졌을 때, 이 연결 리스트를 오름차순으로 정렬하여 반환하세요. 의사코드 함수 sortList if (head가 null 이거나 head의 다음노드가 null이면) head 리턴 count = 0 currentNode를 head로 설정 반복문 시작 [currentNode이 null이 아니면] currentNode의 다음노드를 currentNode로 count 에 +1 을 더함 // currentNode의 갯수를 세기 위함 반복문 종료 currentNode를 다시 he..
리트코드 - 242. Valid Anagram 출처 - https://leetcode.com/problems/valid-anagram/?envType=study-plan-v2&envId=top-interview-150 문제 설명 주어진 두 개의 문자열 s와 t가 있을 때, t가 s의 아나그램인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. 아나그램이란 다른 단어나 구문의 문자를 재배열하여 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 형성된 단어나 구문을 의미합니다. 의사코드 if s와 t의 길이가 다르면 false 리턴 알파벳 갯수만큼 arr 배열 생성 반복문 시작[t 길이만큼 문자열 하나씩 순회] arr 배열에 문자열을 int로 변환하여 넣음 반복문 종료 반복문 시작[s 길..