practivceAlgorithm/programmers 23

[Programmers][Python] 카카오2020블라인드 가사검색

Trie 역방향, 정방향검색, 길이별 검색. class Node: def __init__(self): self.child = {} self.count = 0 class Trie: def __init__(self): self.root = Node() def insert(self,word): node = self.root for char in word: if char not in node.child: node.child[char] = Node() node.count += 1 node = node.child[char] def startswitch(self,prefix): node = self.root for char in prefix: if char=='?': return node.count if char n..

[프로그래머스][Python] 2018카카오블라인드1차: 캐시

내풀이. deque하면 pop안에 인덱스가 안들어 간다는걸 몰랐다. 그래서 결국 그냥 큐로 바꿈. def solution(cacheSize, cities): cache = [] total_cost = 0 for city in cities: lo_city = city.lower() if lo_city not in cache: cache.append(lo_city) total_cost += 5 if len(cache) > cacheSize: cache.pop(0) else: cache.append(cache.pop(cache.index(lo_city))) total_cost += 1 return total_cost 남의 코드 볼 것 :maxlen으로 크기제한, remove로 바로 없애기. # 남의 풀이 de..

[Programmers] 카카오기출2018 뉴스 클러스터링.

set의 교집합과 합집합에 대한 이해가 좀 필요한 문제이다. 평소 set을 잘 쓰지 않는데 많이 배운 문제. 종종 개념을 활용한 풀이를 구상해봐야겠다. from collections import Counter def solution(str1, str2): str1 = str1.lower() str2 = str2.lower() str1_elements_set = [] str2_elements_set = [] # 두글자씩 끊어 원소집합으로 만듦(둘다 알파뱃일 경우만.) for i in range(len(str1)-1): if str1[i].isalpha() and str1[i+1].isalpha(): str1_elements_set.append(str1[i] + str1[i+1]) for j in range..