[프로그래머스] 해시 - 위장 (파이썬)
- 프로그래밍/프로그래머스
- 2020. 4. 27. 17:46
반응형
프로그래머스 해시 - 위장, 문제 확인
문제 설명은 아래와 같다.
스파이들은 매일 다른 옷을 조합해 자신을 위장함
clothes는 스파이가 가진 의상들이 담긴 2차원 배열, 각 행은 [의상이름, 종류]로 이루어져 있음
의상 수는 1개 이상, 30개 이하
같은 이름을 가진 의상은 없음
하루에 최소 한개의 의상은 입어야 함
서로 다른 옷의 조합 수를 리턴하도록 solution 함수를 작성
프로그래머스 해시 - 위장, 문제 풀이 (파이썬)
[[yellow_hat, headgear], [blue_sunglasses, eyewear], [green_turban, headgear]]
최소 한개 이상은 입게 하면서 모든 옷 조합 수를 구하려면 (의상종류+1)을 모두 곱한 후 -1(반드시 하나는 선택)을 해주면 된다. 예를 들어 clothes가 위와 같을 경우, headgear에 해당하는 종류가 2, eyewear에 해당하는 종류가 1이기 때문에 (2+1)*(1+1)=6이고 6-1=5가 리턴값이 되는 것이다.
따라서, clothes 배열을 돌면서 의상종류를 확인해 의상종류 당 의상 수가 몇개인지 확인한다. 그리고 각 수를 모두 곱한 multiple 값에 -1을 해준 값을 리턴한다.
def solution(clothes):
cloth_dict={}
for i,v in enumerate(clothes):
if v[1] in cloth_dict: cloth_dict[v[1]]+=1
else: cloth_dict[v[1]]=2
multiple=1
for i,v in enumerate(cloth_dict.values()): multiple*=v
return multiple-1
아래와 같이 채점을 통과할 수 있다.
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 스택/큐 - 다리를 지나는 트럭 (파이썬) (0) | 2020.04.29 |
---|---|
[프로그래머스] 스택/큐 - 탑 (파이썬) (0) | 2020.04.29 |
[프로그래머스] 해시 - 베스트앨범 (파이썬) (0) | 2020.04.28 |
[프로그래머스] 해시 - 전화번호 목록 (파이썬) (0) | 2020.04.26 |
[프로그래머스] 해시 - 완주하지 못한 선수 (파이썬) (0) | 2020.04.24 |