728x90
일단 문제는 아래 링크를 보시면 됩니다~
https://school.programmers.co.kr/learn/courses/30/lessons/42578
dictionary에 대한 설명은 아래 링크를 참고하시면 됩니다~
코드 및 알고리즘 순서는 아래 코드의 주석을 자세히 보시면 됩니다.
def solution(clothes):
answer = 1
data=dict()
# 1. dictionary를 이용하여 종류별로 정리
# 종류: {옷1, 옷2} 이런 느낌
for i in clothes:
try:
data[i[1]].append(i[0])
except KeyError:
data[i[1]]= [i[0]]
# 2. key_num에 종류들 리스트 저장
key_num=list(data.keys())
# 2-1. 종류가 하나라면 answer에 모든 옷 수 저장
if len(key_num)==1:
answer=len(data[key_num[0]])
# 2-2. 종류가 여러 개라면 answer에 ((종류1+1)*(종류2+1)*...*(종류n+1))-1 저장
else:
for i in key_num:
answer=answer*(len(data[i])+1)
answer=answer-1
return answer
2-2에 대해 첨언을 하자면 "스파이는 하루에 최소 한 개의 의상은 입습니다." 라는 조건으로 인해 위와 같은 식을 짜게 되었고 1을 뺀 이유는 제시된 옷 종류 중 아무것도 안 입는 경우를 빼야하기 때문입니다.
'코딩' 카테고리의 다른 글
| 프로그래머스 - 코딩테스트 고득점 Kit - 완전탐색 - 최소직사각형 (python) (0) | 2023.01.31 |
|---|---|
| 프로그래머스 - 코딩테스트 고득점 Kit - 해시 - 베스트앨범 (python) (0) | 2023.01.23 |
| 프로그래머스 - 코딩테스트 고득점 Kit - 해시 - 전화번호 목록 (python) (2) | 2023.01.23 |
| 프로그래머스 - 코딩테스트 고득점 Kit - 해시 - 완주하지 못한 선수 (python) (0) | 2023.01.23 |
| 프로그래머스 - 코딩테스트 고득점 Kit - 해시 - 폰켓몬 (python) (0) | 2023.01.23 |