목록해시 (4)
컴공생의 다이어리
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ch5fxK/btrAYlBsUeQ/wNHKH3le99d4sKeTHEphX1/img.png)
[프로그래머스] 베스트앨범 - 파이썬(Python) from collections import defaultdict def solution(genres, plays): answer = [] G = defaultdict(int) detail = defaultdict(list) for idx, [g, p] in enumerate(zip(genres, plays)): G[g] += p detail[g].append((p, idx)) for g, _ in sorted(G.items(), key=lambda x: -x[1]): for _, i in sorted(detail[g], key=lambda x: -x[0])[:2]: answer.append(i) return answer 혹은 from collection..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bOty2a/btrA1zThO0q/lCZvK2IJIDFk0e8jPieQvK/img.png)
[프로그래머스] 위장 - 파이썬(Python) from collections import defaultdict def solution(clothes): d = defaultdict(int) for n, t in clothes: d[t] += 1 answer = 1 for i in d.values(): answer *= (i + 1) return answer - 1 특정 종류의 옷을 안입는 경우를 +1로 추가해주고 난 뒤, 맨 마지막에 모두 안입은 경우를 빼줌 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rdmee/btrA1Aq7PBj/3K1JQbsBZ8yF9YeVtMLBT0/img.png)
[프로그래머스] 전화번호 목록 - 파이썬(Python) def solution(phone_book): phone_book.sort() for p1, p2 in zip(phone_book, phone_book[1:]): if p2.startswith(p1): return False return True https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YJwTg/btrAYlBsw2x/LPCLVIifICIL8vvnOtecBk/img.png)
[프로그래머스] 완주하지 못한 선수 - 파이썬(Python) import collections def solution(participant, completion): answer = collections.Counter(participant) - collections.Counter(completion) return list(answer.keys())[0] https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers...