-
[프로그래머스] 위장 - Python3Problem Solving 2023. 1. 31. 04:56
문제 설명
[의상의 이름, 종류]들이 주어질 때, 1개 이상의 의상을 입을 수 있는 의상 조합의 수를 구하는 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 분류 - 해시
- 난이도 - Level 2
접근 방법
1) 종류별 조합을 구하기 위해 {의상 종류: [의상 이름, 의상 이름, ...]} 형태의 딕셔너리를 만든다.
2) 종류별 가능한 조합의 수들을 모두 곱한다. (종류별 0개 또는 1개 선택 가능)
3) 어떤 종류도 선택하지 않는 경우의 수 1을 뺀다.
답안 코드
+10
def solution(clothes): answer = 1 # 종류 - 이름 사전 생성 dic = {} for cloth in clothes: name = cloth[0] kind = cloth[1] if kind not in dic: dic[kind] = [name] else: dic[kind].append(name) # 조합 # nC0~1 * mC0~1 ... - 1 for kind in dic.keys(): answer *= (1+len(dic[kind])) answer -= 1 return answer
'Problem Solving' 카테고리의 다른 글
[백준] 1620. 나는야 포켓몬 마스터 이다솜 - Python3 (0) 2023.02.05 [프로그래머스] 베스트앨범 - Python3 (0) 2023.02.01 [프로그래머스] 전화번호 목록 - Python3 (0) 2023.01.30 [프로그래머스] 완주하지 못한 선수 - Python3 (2) 2023.01.29 [프로그래머스] 모음사전 - Python3 (0) 2023.01.27