https://programmers.co.kr/learn/courses/30/lessons/42578
def solution(clothes):
a = {}
for row in clothes:
if row[1] not in a:
a[row[1]] = [row[0]]
else:
a[row[1]] += [row[0]]
answer = 1
for value in a.values():
answer *= len(value)+1
answer -= 1
return answer
dict 형태로 부위별 의상을 나누어 담는다
단, 같은부위가 여러개일경우 합쳐주고 나중에 개수를 세기 위해서 배열형으로 담는다!
각 부위별로 착용을 1개씩 할수있으므로 부위별 value의 개수끼리 곱해주면 전체 가능한 경우의 수가 나온다
그런데! 착용을 안할수도 있으므로 안하는경우도 포함해서 (개수+1) 을 해줘서 곱해주고
아무것도 착용하지 않을수는 없으므로 해당 경우를 빼주기위해 마지막에 -1 해준다
오랜만에 알고리즘공부하니 새록새록하다
dict를 for문 돌릴때 key,value 뽑아주려면
for key,value in a.items()
key 나 value만 뽑으려면
for key in a.keys()
for value in a.values()
a.keys(), a.values(), a.items()
잘 활용해주면 된다.
끝!!