목록파이썬 (58)
거누의 개발노트
문제 배열을 입력받아 합으로 0을 만들수 있는 3개의 엘리먼트를 출력하라. 입력 nums = [-1, 0, 1, 2, -1, -4] 출력 [ [-1, -1, 2], [-1, 0, 1] ] 작성한 코드 def threeSum(nums: List[int]): lists = [] for a in itertools.combinations(sorted(nums), 3): if sum(a) == 0: lists.append([*a]) rtn = [] for l in lists: if l not in rtn: rtn.append(l) return rtn 리코드에서 시간 초과가 나왔다. - 숫자가 많아지면 조합해야 할 숫자가 많기 때문에 초과된걸로 생각된다. 책에 있는 코드 def threeSum(nums: list..
문제 문자열 배열을 받아 애너그램 단위로 그룹핑하라 애너그램? 일종의 말장난으로 어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것을 말한다. 고대 유대인들이 히브리어로 하곤 했고, 중세 유럽에도 큰 인기를 끌었다. 프랑스 궁정에서는 '왕을 위해 애너그램을 하는 사람'을 고용하기도 했을 정도다. 중세의 대표적인 어구전철은 라틴어로 된 아베 마리아 의 애너그램이다. 우리나라 말로는 '문전박대' 를 '대박전문' 으로 바꿔 부르는 단어 등이 있다. 입력 ['eat', 'tea', 'tan', 'ate', 'nat', 'bat'] 출력 [ ['eat', 'tea', 'ate'], ['tan', 'nat'], ['bat'] ] 작성한 코드 def groupAnagrams(strs: List..