2024/07/07 5

[ArraysHashing][Medium] 347. Top K Frequent Elements

https://leetcode.com/problems/top-k-frequent-elements/description/  숫자 배열이 주어질 때, k 번째로 많이 등장하는 원소까지 찾아라.  여러 가지 방법이 있을 수 있다. frequency buffer를 만들고 frequency 수로 정렬한다. map을 이용해서 정렬할 수도 있고, priority queue를 이용할 수도 있다.  하지만, follow up에서 보다시피, O(nxlog(n)) 을 넘지 말라고 명시하고 있다.따라서 조금 더 생각해 볼 여지가 있다.  일단 sort 나 일반 map 은 정렬에 의존하므로, n x log(n) 이다. 이것은 기준에 부합하지 않는다. 다음으로 priority queue를 보자. insert 시 O(n), pop..

Leetcode/NeetCode 2024.07.07

[ArraysHashing][Medium] 49. Group Anagrams

https://leetcode.com/problems/group-anagrams/description/ 문장들의 배열이 주어질 때, anagram이 같은 것들끼리 묶어서 출력하라.  우선 이 문제를 풀때는 frequency buff를 사용한다는 생각에 미치는 것이 일반적이다. 하지만 조금 더 최적화를 위해서를 입력된 문자를 정렬하면 anagram이 같은 문자는 같은 문자로 정리된다는 생각에 까지 이르러야 한다.  코드 더보기vector> groupAnagrams(vector& strs) { map> mBuff; for (auto k = 0; k { k }; else mBuff[cur].push_back(k); } vector> vRet; for ..

Leetcode/NeetCode 2024.07.07