<내 코드>
def solution(clothes):
cloth = {}
for stuff, wear in clothes:
if wear in cloth: cloth[wear] += 1
else: cloth[wear] = 1
result = 1
for count in cloth.values():
result *= (count + 1)
return result - 1
해시를 이용한 조합문제이다. 조합을 구하는 센스가 필요했다. Counter 클래스 또는 for문을 통해 일단 딕셔너리에 넣어준다.
문제를 풀면서 처음 알게된 사실인데 밸류로 리스트를 넣는방법이 있을까 해서 아래와 같이 알아봤다
<입력받은 값을 리스트로 만들어 딕셔너리에 할당하는 방법>
my_dict[key] = [value]
처음 받아온 k-v값으로 선언해준다음 my_dict[key].append(other_value) 로 밸류값에 리스트를 넣을수가 있었다
문제는 조합하는 부분이였는데..
각 가짓수 + 1(선택하지 않는 경우)을 모두 곱한값을 리턴하고 마지막에 모두 입지않는 경우는 없다고 하므로 -1 가짓수를 빼주면 된다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers / Level3] 야근지수 (2) | 2024.02.28 |
---|---|
[Programmers / Level2] 캐시 (0) | 2024.01.30 |
[Programmers / Level2] 행렬의 곱셈 (1) | 2024.01.28 |
[Programmers / Level2] 할인 행사 (2) | 2024.01.27 |
[Programmers / Level2] n^2 배열 자르기 (0) | 2024.01.26 |