일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- heap
- hash
- python3
- Bellman-Ford
- dfs
- 구현
- Two Pointers
- Java
- A* Algorithm
- 광연자동차운전면허학원
- Hashtable
- BFS
- String
- graph
- Union Find
- VCS
- stack
- leetcode
- SinglyLinkedList
- greedy
- Medium
- array
- 자료구조
- LinkedList
- Leedcode
- hash table
- DailyLeetCoding
- sorting
- Easy
- ArrayList vs LinkedList
- 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로 저장해..