CodingTest 감 살리기 with Programmers
위장
from collections import defaultdict
def solution(clothes):
answer = 1
dic = defaultdict(list)
for cl in clothes:
dic[cl[1]].append(cl[0])
for d in dic:
answer*=len(dic[d])+1
return answer-1
딕셔너리에 값을 종류 별로 입력한 후에 못든 경우의 수 -1을 하였다.
특정 옷 종류+1개의 경우의 수 - 옷을 전혀 입지 않은 수가 원하는 값이기 때문이다.
베스트 앨범
from collections import defaultdict
def solution(genres, plays):
answer = []
dic1 =defaultdict(list)
dic2 =defaultdict(int)
for i,p in enumerate(zip(genres,plays)):
dic1[p[0]].append((i,p))
dic2[p[0]] +=p[1]
for k,v in sorted(dic2.items(),key= lambda x : x[1],reverse=True):
for (i,p) in sorted(dic1[k],key=lambda x:x[1],reverse=True)[:2]:
answer.append(i)
return answer
- 가장 많이 플레이한 장르, 재생 횟수가 같은 노래 중, 고유 번호가 낮은 노래를 4개 출력하면 된다.
- 로직은 간단한데, 문제를 제대로 읽지 않아 푸는데 오래 걸렸다
- 1~2개씩 틀리는게 뭔가 했는데 예외처리를, 제대로 하지 않았다
레퍼런스
'알고리즘 풀이' 카테고리의 다른 글
| CodingTest 감 살리기 with Programmers - 6일차 (1) | 2023.03.14 |
|---|---|
| CodingTest 감 살리기 with Programmers - 5일차 (0) | 2023.03.13 |
| CodingTest 감 살리기 with Programmers - 4일차 (0) | 2023.03.11 |
| CodingTest 감 살리기 with Programmers - 2일차 (0) | 2023.03.02 |
| CodingTest 감 살리기 with Programmers - 1일차 (0) | 2023.03.01 |
댓글