Algorithm/Hash

·Algorithm/Hash
난이도: Lv.3유형: 해시해결 여부: 틀림내가 생각했던 아이디어/큰 가닥일단 처음에는 genre,play,index 3개를 한번에 묶을라다가 어차피 장르별로 뽑으니까 장르별로 딕셔너리 구분하기로 했다. 그리고 아예 그김에 합도 기록하는데, 딕셔너리 쓰던거에 기록하기에는 key로 하든 value로 하든 애매해서, 그냥 새로운 dict를 팠다. 그래서 다음과 같은 자료형으로 표현된다.dicts={pop:[[500,1],[400,2]],jazz:[[300,3],[50,4]]...}sum_dicts={pop:900,jazz:350}오답 이유-틀린 결정적인 이유는 sum_dicts=sorted(sum_dicts.items(),reverse=True) 이 부분이었다.여기서 자연스럽게 key:value인데 item..
·Algorithm/Hash
난이도: Lv.1유형: 해시해결 여부: 해결아이디어간단한 문제여서 아이디어고 뭐고 없다. 나는 collections 썼는데 중복인거 뺴고 계산해줘야 한다는 점에서 set()을 써도 된다.오답 이유 혹은 알게 된것Counter()는 대문자로 쓰자import collectionsdef solution(nums): temp=collections.Counter(nums) return min(len(temp),len(nums)/2)
·Algorithm/Hash
난이도: Lv.2유형: 해시 함수해결 여부: 오답아이디어파이썬 기준 딕셔너리를 통한 해시 맵으로 문제 해결오답 이유 혹은 알게 된것배열로 첫글자보고 나누어서 순회하는 식으로 했는데 time error가 나왔다.이는 파이썬 자체에서 연속된 내용 아니면 딕셔너리가 해시맵 방식으로 훨씬 빨라서 이를 이용해야 했다.그리고 다 추가한다음에 그 글자를 기준으로 -1번쨰까지만 있는게 n^2 이 아니라 n*m 이어서 더 빨랐다.def solution(phone_book): # 1. 모든 번호를 해시 맵(딕셔너리)에 저장 hash_map = {} for number in phone_book: hash_map[number] = True # 2. 각 번호를 쪼개서 딕셔너리에 존재하는지 확인..
·Algorithm/Hash
난이도: Lv.1유형: 해시해결 여부:오답후 해결아이디어-participant에는 있고 completion에는 없는 단 하나의 문자열을 찾아라오답 이유 혹은 알게 된것처음에 그냥 원소에서 한번 순회하면서 해당하는 원소값 다 remove해줄라다가 (pop은 index로 remove는 값으로 니까..) 시간초과 나와서, 정렬시키고 답 나오면 바로 return 해주는 식으로 바꾸었다.길이가 0,1 일때 edge case 처리 안해줘서 오답떴다.나는 그냥 정렬 후 비교로 풀었지만 이 경우 NlogN 이 걸린다. 반면 import collections 후 collections.Counter(participant) - collections.Counter(completion) 하면 훨씬 연산이 빠르다고 한다def s..
걍판자
'Algorithm/Hash' 카테고리의 글 목록