일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dfs
- heap
- stack
- 자료구조
- A* Algorithm
- leetcode
- Java
- array
- greedy
- LinkedList
- Medium
- hash
- Hashtable
- VCS
- sorting
- hash table
- String
- Leedcode
- Easy
- Two Pointers
- python3
- SinglyLinkedList
- Union Find
- Bellman-Ford
- BFS
- ArrayList vs LinkedList
- 광연자동차운전면허학원
- 구현
- DailyLeetCoding
- graph
- Today
- Total
목록heap (2)
Min IT's Devlog
풀이 일자: 23.05.22 난이도: [Medium] 분류: [Hash Table, Divide and Conquer, Sorting, Heap, Bucket Sort] 문제 내용 단순하게 숫자 배열이 주어졌을 때 상위 k개의 빈번하게 등장하는 수를 순서상관 없이 리턴하는 문제였다. Follow-up에서는 NLogN의 시간복잡도를 갖는 알고리즘으로 풀어보라고 했다. 문제 해결 흐름 1. 단순하게 생각해보면 dictionary 하나 만들어서 숫자 카운트하고 이를 value기준으로 sort해서 return하면 끝나겠다. class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: cnt = dict(); for i in range..
풀이 일자: 22.08.18 난이도: [Medium] 문제 내용 주어진 integer array를 가지고 해당 array의 length를 반 이하로 줄일 때 최소한의 빼야하는 숫자의 개수에 대한 문제였다. arr = [3,3,3,3,5,5,5,2,2,7] → 이런식으로 주어졌을 때 3과 7을 뺀다면 남는 array는 [5,5,5,2,2]가 되게 되면서 기존의 1/2가 되게 된다. 문제 해결 흐름 1. 우선 중복되는 수를 몇 개씩 있는지 check를 해야겠다. → Dictionary를 이용하여 각각 몇개씩 있는지 세자. 2. 어떤 원소를 빼야 하는지가 아니라 최소한 빼야하는 원소의 개수에 대한 문제이니까 갯수에 대한 정보만 있으면 되겠네! → Dictionary의 value값만을 가져와서 list로 저장해..