🗂️ 문제
링크: https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡 접근법
딕셔너리를 생성하여 입력값 clothes의 의상의 종류를 Key로, 의상의 종류에 해당하는 의상의 이름을 value로 추가한다.
옷을 조합하는 경우의 수는 다음과 같다.
각각의 의상의 종류에서 의상을 0개 선택할 수도 있다. 따라서 의상의 개수 + 1을 종류 별로 계산하여 곱해주고, 적어도 하나의 의상은 입어야 하므로 곱한 값에서 1을 빼야 한다.
😎 내 코드
def solution(clothes):
answer = 0
cony = {}
for name, type in clothes:
if type in cony:
cony[type].append(name)
else:
cony[type] = [name]
case = 1
for c in cony:
case *= len(cony[c]) + 1
answer += case - 1
return answer
'Algorithm > Programmers' 카테고리의 다른 글
[스택/큐] 프로그래머스 Lv1. 기능 개발 - Python (0) | 2025.01.11 |
---|---|
[힙] 프로그래머스 Lv3. 이중우선순위큐 - Python (0) | 2024.05.30 |
[해시] 프로그래머스 Lv2. 전화번호 목록 - Python (0) | 2024.05.17 |
[DFS] 프로그래머스 Lv3. 네트워크 - Python (0) | 2024.05.15 |
[BFS] 프로그래머스 Lv2. 게임 맵 최단거리 - Python (0) | 2024.05.15 |