목록문제/프로그래머스_파이썬 (13)
sm 기술 블로그
import re def solution(str1, str2): str1 = str1.lower() str2 = str2.lower() str1 = re.sub(r'[^a-z]', ".", str1) str2 = re.sub(r'[^a-z]', ".", str2) if(str1 == str2): return 65536 arr1 = dict() arr2 = dict() up = 0 down = 0 for i in range(0, len(str1)-1): tmp = str1[i] + str1[i+1] if(tmp.find(".") == -1): try: arr1[tmp] += 1 except: arr1[tmp] = 1 for i in range(0, len(str2)-1): tmp = str2[i] + st..
def solution(s): answer = [] tmp = dict() s = s.replace("{","") s = s.replace("}","") for i in s.split(",") : try : tmp[i] += 1 except : tmp[i] = 1 for key,val in sorted(tmp.items(), key=lambda x: x[1], reverse=True): answer.append(int(key)) return answer 문제요약 입력이 문자열로 된 집합이다. 빈도가 많은 순으로 튜플을 만들어라. 설명 문자열로 된 집합에서 순서에 상관없이 튜플을 만든다면 크게 어렵지 않다. 하지만 빈도수에 따른 결과를 내놓는 것이 필요하기 때문에 정렬을 써야한다. 주의점 중복 제거라는 생..
def solution(cacheSize, cities): answer = 0 cache = [] for city in cities : city = city.lower() # Miss if city not in cache: if cacheSize != 0: if len(cache) < cacheSize: cache.append(city) else: cache.pop(0) cache.append(city) answer += 5 # Hit! else: cache.pop(cache.index(city)) cache.append(city) answer += 1 return answer 문제요약 LRU(캐시교체 알고리즘) 을 사용하여 실행시간을 구하라. 설명 캐시교체 알고리즘은 아래를 참고하자. https://s..
def solution(id_list, report, k): answer = list(0 for _ in range(len(id_list))) declaration = dict() report = list(set(report)) for i in report: victim, perpetrator = i.split(" ") try: declaration[perpetrator] += [i] except: declaration[perpetrator] = [i] for j in declaration: if len(declaration[j]) >= k: for z in declaration[j]: victim, perpetrator = z.split(" ") answer[id_list.index(victim)] +..