리트코드 - 211. Design Add and Search Words Data Structure
리트코드 - 211. Design Add and Search Words Data Structure CS/코딩테스트 2023. 9. 10. 23:58

리트코드 - 211. Design Add and Search Words Data Structure 출처 - https://leetcode.com/problems/design-add-and-search-words-data-structure/?envType=study-plan-v2&envId=top-interview-150 문제 설명 새로운 단어를 추가할 수 있고 이전에 추가된 단어 중에서 주어진 문자열과 일치하는 것이 있는 데이터 구조를 만드세요. WordDictionary" 클래스를 구현하세요: - WordDictionary() :객체를 초기화합니다. - addWord(word) : 단어를 데이터 구조에 추가할 수 있으며, 나중에 이 단어와 일치 여부를 확인할 수 있습니다. - search(word) :..

리트코드 - 208. Implement Trie (Prefix Tree)
리트코드 - 208. Implement Trie (Prefix Tree) CS/코딩테스트 2023. 9. 10. 04:33

리트코드 - 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
리트코드 - 230. Kth Smallest Element in a BST CS/코딩테스트 2023. 9. 8. 03:24

리트코드 - 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
리트코드 - 530. Minimum Absolute Difference in BST CS/코딩테스트 2023. 9. 6. 23:50

리트코드 - 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..

해쉬테이블과 Linear Probing에 관한 정리
해쉬테이블과 Linear Probing에 관한 정리 CS/알고리즘 2023. 9. 5. 08:44

해쉬테이블 구조 해쉬테이블이란 key, value 형태로 값을 저장하여 빠르게 key값만 가지고 데이터를 검색할 수 있습니다. 이러한 해쉬테이블은 key값은 중복이 되면 안되고, value값은 중복될 수 있는데요. 쉽게 설명하면 웹사이트에서 id로 쓰는 값이 key값이고 password가 value값입니다. id는 같은 사람이 없지만 password는 (우연할지라도) 같을 수 있는 것과 같습니다. 그러면 이 key값은 어떻게 보관할까요? 해쉬테이블이 key 값을 저장하는 방법 해쉬테이블은 hash function에서 key값을 가져와 특정 연산을 하여 인덱스 값을 계산하는데 이를 해싱이라고 합니다. 해싱을 사용하면 키의 데이터 타입이나 크기에 상관없이 일정한 크기의 해시코드를 생성할 수 있습니다. 그리고..

리트코드 - 162. Find Peak Element
리트코드 - 162. Find Peak Element CS/코딩테스트 2023. 9. 4. 23:24

리트코드 - 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) 시간 내에 실행되는 알고리즘을 작성해야 합니다. 의사코드 왼쪽..

image