사용 언어 - Python3
문제 - 의상
https://school.programmers.co.kr/learn/courses/30/lessons/42578
정답
hash 사용하기
1. 옷을 종류별로 구분하기
hasp_map[얼굴] = 얼굴에 쓰는 옷 종류 개수
type에 해당하는 옷이 없다면 +1 / 있다면 지금까지의 count + 1
hash_map.get(type,0) + 1
2. 모든 조합 계산하기
상의 2개에 하의 1개이면, 상의만 입거나 하의만 입을 수도 있으므로
가능한 경우 수 = 상의 3개*하의2개 -1(아무것도 안입은 경우)
answer *= (hash_map[type] + 1)
answer - 1
def solution(clothes):
# 1. 옷을 종류별로 구분하기
hash_map = {}
for clothe, type in clothes:
hash_map[type] = hash_map.get(type, 0) + 1
# 같은 종류의 옷이 있다면, type(같은 종류의 개수) + 1
# 같은 종류의 옷이 없다면, 0 + 1
# 2. 입지 않는 경우를 추가하여 모든 조합 계산하기
answer = 1
for type in hash_map:
answer *= (hash_map[type] + 1)
# (옷종류1+1) * (옷종류2+1) ....
# 3. 아무종류의 옷도 입지 않는 경우 제외하기
return answer - 1
레퍼런스
https://coding-grandpa.tistory.com/88
정답 깃허브
'Algorithm > 해시' 카테고리의 다른 글
[프로그래머스 lv 3] 베스트앨범 (0) | 2023.12.04 |
---|---|
[프로그래머스 lv 2] 전화번호 목록 (0) | 2023.12.04 |
[프로그래머스 lv 1] 폰켓몬 (0) | 2023.05.29 |
[프로그래머스 lv1] 완주하지 못한 선수 (0) | 2023.05.29 |
댓글