본문 바로가기
[LeetCode] 49. Group Anagrams(정렬하지 않고 풀 수 있지 않을까?) [LeetCode] 49. Group Anagramshttps://leetcode.com/problems/group-anagrams입력값으로 주어진 문자열에서 애너그램끼리 그룹화한 결과를 반환하는 것이 문제의 요구사항이다. 문자를 구성하는 철자의 개수, 즉 구성이 동일하다면 같은 그룹에 속한다. 1. 시작점: 정렬 없이 풀 수 있을 거라 생각했다애너그램 단어들은 정렬을 하면 같은 문자열이 된다. 따라서 정렬 후 같은 문자가 되는지 여부를 판단하여 제출하면 된다. 일반적인 모범답안은 아래와 같다(출처: 파이썬 알고리즘 인터뷰).import collectionsclass Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: .. 2025. 4. 13.
[Python] Sorted()에서 key 정렬 기준에 따라 속도가 달라지는 이유 Python sorted()와 key 정렬기준 최적화 과정 1. 들어가기에 앞서들어가기에 앞서 말하자면 이 글은 가설을 세우고 다시 정정하는 과정을 담고 있다. 따라서 가설이 맞다고 생각하면서 읽기보다는, 그 과정에서 어떤 오류가 있었는지를 살펴보면 더 유용할 것이다. 2. sorted()에서 같은 정렬 기준을 사용했는데, 실행 속도가 다르다코딩 테스트 문제 리트코드937 - 로그 파일 재정렬을 풀다가 예상보다 정렬 속도가 느리게 나오는 경우를 발견했다. 교재에 있는 답안을 그대로 제출했더니 전체 제출된 답안의 런타임 중에 좌측과 같은 분포가 나타났고, 그 후 다른 답안을 참고하여 sorted()의 key 파라미터를 수정하여 제출했더니 우측의 분포가 나타났다.내가 참고한 교재에서는 정렬 시 아래와 같은 .. 2025. 3. 16.