알고리즘
[ 해시 ][ 파이썬 ] 프로그래머스 : 위장
mminky
2022. 2. 27. 21:47
728x90
[ 문제 ]
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
[ 코드 ]
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
경우의 수를 계산하는 법을 알아야 한다!
반응형