리트코드 - 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..
해쉬테이블 구조 해쉬테이블이란 key, value 형태로 값을 저장하여 빠르게 key값만 가지고 데이터를 검색할 수 있습니다. 이러한 해쉬테이블은 key값은 중복이 되면 안되고, value값은 중복될 수 있는데요. 쉽게 설명하면 웹사이트에서 id로 쓰는 값이 key값이고 password가 value값입니다. id는 같은 사람이 없지만 password는 (우연할지라도) 같을 수 있는 것과 같습니다. 그러면 이 key값은 어떻게 보관할까요? 해쉬테이블이 key 값을 저장하는 방법 해쉬테이블은 hash function에서 key값을 가져와 특정 연산을 하여 인덱스 값을 계산하는데 이를 해싱이라고 합니다. 해싱을 사용하면 키의 데이터 타입이나 크기에 상관없이 일정한 크기의 해시코드를 생성할 수 있습니다. 그리고..
리트코드 - 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 길..
리트코드 - 383. Ransom Note 출처 - https://leetcode.com/problems/ransom-note/?envType=study-plan-v2&envId=top-interview-150 문제 설명 두 개의 문자열 ransomNote와 magazine이 주어졌을 때, ransomNote를 magazine의 문자들을 이용하여 구성할 수 있는 경우에는 true를 반환하고, 그렇지 않은 경우에는 false를 반환합니다. magazine의 각 문자는 ransomNote에서 한 번만 사용될 수 있습니다. 의사코드 ransomMap 생성 magazineMap 생성 반복문 시작 [ransomNote 길이만큼 순회] ransomMap에 key=알파벳, value=갯수만큼 더함 반복문 종료 반복문..