문제 : https://programmers.co.kr/learn/courses/30/lessons/42578
이 문제도 역시 Dictionary, 해쉬맵을 써서 풀면 되는 문제다.
처음에는 ( 의상 종류, 의상 이름) 으로 dictionary에 넣는다.
그 다음이 중요한데,
- 각 의상중에 하나 이상만 쓰면 되니까, 어떤 의상 종류는 안쓸수 있다.
- 근데 또, 다 안쓸수는 없다.
- 따라서, (나같은 경우에는) "" 을 각 의상 종류에다 넣어서 안입는 null value 를 넣었다.(closet[k].append("") )
- 이제 각 의상 종류를 모두 곱한 값이 총 방법의 갯수인데, 빼먹은게 하나있다.
- 1-2 에서 null value를 넣었으니 전체가 null value 인 세트도 하나 나올거고, 이건 빼줘야한다.
- 그래서 최종 정답은 -> 각 의상종류 개수 곱 - 1(하나도 안쓴거)
def solution(clothes):
closet = dict()
for c in clothes:
if c[1] not in closet:
closet[c[1]] = [c[0]]
else:
closet[c[1]].append([c[0]])
for k in closet.keys():
closet[k].append("")
answer = 1
for v in closet.values():
answer = answer*len(v)
answer-=1
return answer
'취준 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Programmers][Python] 종이접기 (0) | 2020.03.10 |
---|---|
[프로그래머스 Programmers][Python] 자물쇠와 열쇠 (0) | 2020.02.17 |
[프로그래머스 Programmers][Python] 124 나라의 숫자 (0) | 2020.02.10 |
[프로그래머스 Programmers][Python] 여행경로 (0) | 2020.02.10 |
[프로그래머스 Programmers][Python] K번째수 (0) | 2020.02.09 |