개발/코딩테스트
[프로그래머스]위장 - 파이썬(Python)
grulsuitg
2022. 7. 3. 11:57
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
My Solution
from collections import defaultdict
def solution(clothes):
answer = 1
kinds = defaultdict(list)
for cloth in clothes:
kinds[cloth[1]].append(cloth[0])
for kind in kinds:
answer *= len(kinds[kind]) + 1
return answer - 1
Key Idea
- dictionary key : 옷의 종류, value : 옷의 이름을 저장하는 리스트
→ 옷의 이름이 중복이 없으므로 굳이 저장할 필요 X (문제 조건을 잘 읽자..)
따라서 그냥 숫자를 저장해도 괜찮을 것 같습니다. - 모든 옷의 종류에 대해 (종류별 옷의 갯수 + 1) 를 곱한 후 -1을 해줍니다.
종류별 옷의 갯수 + 1 : 안입는 경우 한가지를 추가
-1을 하는 이유 : 위와 같이 식을 세우면 모두 안 입는 경우가 생기기 때문에 그 경우를 빼줍니다.