728x90
[ 문제 ]
https://programmers.co.kr/learn/courses/30/lessons/42578
[ 코드 ]
def solution(clothes):
dic={}
c = 1
# ["yellowhat", "headgear"] 이러한 items를 읽어옴
for items in clothes:
if items[1] in dic: # "headgear"가 이미 dic={} 안에 있다면
dic[items[1]] += 1 # "headgear": +1
else: # "headgear"가 처음 나왔다면
dic[items[1]] = 1 # "headgear" : 1
#print(dic) #결과 {'headgear': 2, 'eyewear': 1}
for v in dic.values(): # 여기서 2, 1을 의미
c = c* (v+1) # 안 쓴 경우까지 고려하기 위해 v+1
# ex. headgear의 경우 "yellowhat", "bluesunglasses", "안 씀" (총 3가지)
#for k, v in dic.items(): #(참고) 이렇게 key,value 이용 가능
# print(k," ",v)
return c-1 # 최소 한 개 이상은 입음. 다 안 입는 경우 -1
경우의 수를 계산하는 법을 알아야 한다!
반응형
'알고리즘' 카테고리의 다른 글
[ 정렬 ][ 파이썬 ] 프로그래머스 : 가장 큰 수 (0) | 2022.02.28 |
---|---|
[ 정렬 ][ 파이썬 ] 프로그래머스 : k번째수 (0) | 2022.02.27 |
[ 해시 ][ 파이썬 ] 프로그래머스 : 전화번호 목록 (1) | 2022.02.26 |
[ 해시 ][ 파이썬 ] 프로그래머스 : 완주하지 못한 선수 (0) | 2022.02.26 |
[ greedy ][ 파이썬 ] 백준 11047 번 : 동전 0 (1) | 2022.02.23 |