Coding Test/알고리즘 이론

Augmenting Data Structures - leetcode (30)

hyunkookim 2025. 1. 11. 21:10

Easy:

  1. Two Sum (LeetCode 1)
    설명: 주어진 배열에서 두 수의 합이 특정 값이 되는 인덱스를 찾습니다.
    핵심 개념: 해시 맵을 이용한 효율적인 탐색.
  2. Contains Duplicate (LeetCode 217)
    설명: 배열에 중복된 요소가 있는지 확인합니다.
    핵심 개념: 집합(Set)을 활용한 중복 검사.
  3. Intersection of Two Arrays (LeetCode 349)
    설명: 두 배열의 교집합을 구합니다.
    핵심 개념: 해시 맵과 집합을 이용한 교집합 연산.
  4. First Unique Character in a String (LeetCode 387)
    설명: 문자열에서 처음으로 반복되지 않는 문자의 인덱스를 찾습니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 계산.
  5. Majority Element (LeetCode 169)
    설명: 배열에서 과반수를 차지하는 요소를 찾습니다.
    핵심 개념: 해시 맵을 통한 요소 빈도 계산.
  6. Valid Anagram (LeetCode 242)
    설명: 두 문자열이 애너그램인지 확인합니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 비교.
  7. Ransom Note (LeetCode 383)
    설명: 주어진 문자열로 다른 문자열을 구성할 수 있는지 확인합니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 비교.
  8. Isomorphic Strings (LeetCode 205)
    설명: 두 문자열이 동일한 구조를 가지는지 확인합니다.
    핵심 개념: 해시 맵을 통한 문자 매핑.
  9. Word Pattern (LeetCode 290)
    설명: 문자열이 주어진 패턴을 따르는지 확인합니다.
    핵심 개념: 해시 맵을 통한 패턴 매핑.
  10. Happy Number (LeetCode 202)
    설명: 주어진 수가 행복한 수인지 확인합니다.
    핵심 개념: 해시 맵을 통한 사이클 검출.
  11. Find All Numbers Disappeared in an Array (LeetCode 448)
    설명: 1부터 n까지의 숫자 중 배열에 없는 숫자를 찾습니다.
    핵심 개념: 해시 맵을 통한 존재 여부 확인.
  12. Single Number (LeetCode 136)
    설명: 배열에서 한 번만 등장하는 요소를 찾습니다.
    핵심 개념: 해시 맵을 통한 요소 빈도 계산.
  13. Find the Difference (LeetCode 389)
    설명: 두 문자열의 차이를 찾습니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 비교.
  14. First Repeating Character (LeetCode 2351)
    설명: 문자열에서 처음으로 반복되는 문자를 찾습니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 계산.
  15. Jewels and Stones (LeetCode 771)
    설명: 보석과 돌이 주어졌을 때, 보석의 개수를 셉니다.
    핵심 개념: 해시 맵을 통한 문자 분류.
  16. Uncommon Words from Two Sentences (LeetCode 884)
    설명: 두 문장에서 한 번만 등장하는 단어를 찾습니다.
    핵심 개념: 해시 맵을 통한 단어 빈도 계산.
  17. Unique Number of Occurrences (LeetCode 1207)
    설명: 배열에서 각 숫자의 등장 횟수가 모두 다른지 확인합니다.
    핵심 개념: 해시 맵과 집합을 통한 빈도 비교.
  18. Intersection of Multiple Arrays (LeetCode 2248)
    설명: 여러 배열의 교집합을 구합니다.
    핵심 개념: 해시 맵을 통한 교집합 연산.
  19. Check if N and Its Double Exist (LeetCode 1346)
    설명: 배열에 어떤 수와 그 수의 두 배가 모두 존재하는지 확인합니다.
    핵심 개념: 해시 맵을 통한 존재 여부 확인.
  20. Find Common Characters (LeetCode 1002)
    설명: 여러 문자열에서 공통으로 나타나는 문자를 찾습니다.
    핵심 개념: 해시 맵을 통한 문자 빈도 비교.

Medium:

  1. Subarray Sum Equals K (LeetCode 560)
    설명: 합이 k가 되는 부분 배열의 개수를 찾습니다.
    핵심 개념: 해시 맵을 통한 누적 합 계산.
  2. Longest Substring Without Repeating Characters (LeetCode 3)
    설명: 반복되지 않는 가장 긴 부분 문자열의 길이를 찾습니다.
    핵심 개념: 해시 맵과 슬라이딩 윈도우.
  3. Group Anagrams (LeetCode 49)
    설명: 애너그램인 문자열들을 그룹화합니다.
    핵심 개념: 해시 맵을 통한 그룹화.
  4. Top K Frequent Elements (LeetCode 347)
    설명: 가장 빈도가 높은 k개의 요소를 찾습니다.
    핵심 개념: 해시 맵과 우선순위 큐.
  5. Find Duplicate Subtrees (LeetCode 652)
    설명: 이진 트리에서 중복된 서브트리를 찾습니다.
    핵심 개념: 해시 맵을 통한 서브트리 직렬화.
  6. Copy List with Random Pointer (LeetCode 138)
    설명: 랜덤 포인터가 있는 연결 리스트를 복사합니다.
    핵심 개념: 해시 맵을 통한 노드 매핑.
  7. Word Break (LeetCode 139)
    설명: 문자열을 단어 사전의 단어들로 분할할 수 있는지 확인합니다.
    핵심 개념: 동적 프로그래밍과 해시 맵.
  8. Longest Consecutive Sequence (LeetCode 128)
    설명: 가장 긴 연속된 수열의 길이를 찾습니다.
    핵심 개념: 해시 맵을 통한 수열 추적.
  9. Minimum Window Substring (LeetCode 76)
    설명: 문자열에서 다른 문자열의 모든 문자를 포함하는 최소 윈도우를 찾습니다.
    핵심 개념: 해시 맵과 슬라이딩 윈도우.
  10. Evaluate Division (LeetCode 399)
    설명