https://programmers.co.kr/learn/courses/30/lessons/60060
이번에 정확성과 효율성 테스트로 부분점수가 나뉘었던 가사 검색 문제입니다.
효율성에서 역시나 통과를 못하네요. 시험 당일날 프로그래밍 갤러리에서 해쉬를 써야 한다는 말을 본적이 있는데, 구체적으로 알 수 있을까요?
아니면 코드를 어떻게 고쳐야 할지 아시는 분도 말씀해주시면 감사하겠습니다.
코드는 일단 단어길이에 따라 따로 dict에 list형식으로 저장 한 다음 각 query 별로 길이에 맞춰서 단어들을 매칭 해보는 구조 입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from collections import defaultdict def solution(words,queries) : words_dict = defaultdict(list) for word in words: words_dict[len(word)].append(word) result = [0]*len(queries) for i,query in enumerate(queries): if query[0] == '?': idx = len(query) - query[::-1].find('?') result[i] = sum(word.endswith(query[idx:]) for word in words_dict[len(query)]) else: idx = query.find('?') result[i] = sum(word.startswith(query[:idx]) for word in words_dict[len(query)]) return result | cs |
트라이써요 - dc App
무슨말인지 모르겠습니다. try/exception 말하는건가요?
아뇨 trie요 인터넷에 검색 고고 - dc App
오오 감사합니다 ㅎㅎ