반응형
250x250
Notice
Recent Posts
Recent Comments
Link
DecordRay
[프로그래머스] Level2 : 위장[Python] 본문
728x90
반응형
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42578
풀이 :
1. 의상 종류별 개수를 세기 위한 딕셔너리 daily_fashion 생성
2. daily_fashion에 의상 종류별 개수 저장
딕셔너리에 해당 의상 종류가 없을 경우 1로 초기화
딕셔너리에 해당 의상 종류가 있을 경우 기존 개수 +1
3. 의상 종류만큼 반복문 실행하면서 answer에 각 종류별 의상의 개수 + 1을 곱해줌
Ex) "headgear" 종류가 green,blue,yellow 3가지일 경우
green 선택하는 경우,
blue선택하는 경우,
yellow선택하는 경우,
아무것도 선택하지 않는 경우
총 4가지이므로
4. 마지막에 answer - 1을 해줌(모든 옷을 선택 안하는 경우의 수를 빼줘야 하기때문)
코드 :
def solution(clothes):
answer = 1
daily_fashion = dict() # 의상 종류별 개수를 세기 위한 딕셔너리 생성
for i in range(len(clothes)):
if clothes[i][1] not in daily_fashion.keys(): # 딕셔너리에 해당 의상 종류가 없을시 생성 후 개수 1로 초기화
daily_fashion[clothes[i][1]] = 1
else: # 딕셔너리에 해당 의상 종류가 있을시 +1
daily_fashion[clothes[i][1]] += 1
for i in range(len(daily_fashion)): # 의상 종류만큼 반복
answer *= daily_fashion[list(daily_fashion.keys())[i]]+1 # 의상 종류별 의상의 개수 + 1을 곱해줌(Ex - headgear종류가 green,blue,yellow 3가지일경우 green선택,blue선택,yellow선택,아무것도 선택x 총 4가지이므로)
answer -= 1 # 모든 의상을 선택안하는 경우의 수를 빼줘야하므로
return answer
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level2 : 프린터[Python] (0) | 2023.01.11 |
---|---|
[프로그래머스] Level2 : 튜플[Python] (0) | 2023.01.10 |
[프로그래머스] Level2 : 괄호 회전하기[Python] (0) | 2023.01.09 |
[프로그래머스] Level2 : 행렬의 곱셈[Python] (0) | 2023.01.06 |
[프로그래머스] Level2 : [1차] 캐시[Python] (0) | 2023.01.06 |
Comments