프로그래머스 위장 (Lv2)

김준오·2021년 5월 1일
0

알고리즘

목록 보기
11/91
post-thumbnail

문제

https://programmers.co.kr/learn/courses/30/lessons/42578

풀이

def solution(clothes):
    a = {}
    for row in clothes:
        if row[1] not in a:
            a[row[1]] = [row[0]]
            
        else:
            a[row[1]] += [row[0]]
            
    answer = 1
    
    for value in a.values():
        answer *= len(value)+1
        
            
    answer -= 1
    return answer

결과

풀이법

dict 형태로 부위별 의상을 나누어 담는다
단, 같은부위가 여러개일경우 합쳐주고 나중에 개수를 세기 위해서 배열형으로 담는다!

각 부위별로 착용을 1개씩 할수있으므로 부위별 value의 개수끼리 곱해주면 전체 가능한 경우의 수가 나온다
그런데! 착용을 안할수도 있으므로 안하는경우도 포함해서 (개수+1) 을 해줘서 곱해주고
아무것도 착용하지 않을수는 없으므로 해당 경우를 빼주기위해 마지막에 -1 해준다

배운점

오랜만에 알고리즘공부하니 새록새록하다

dict를 for문 돌릴때 key,value 뽑아주려면

for key,value in a.items()

key 나 value만 뽑으려면

for key in a.keys()

for value in a.values()

a.keys(), a.values(), a.items()
잘 활용해주면 된다.
끝!!

profile
jooooon

0개의 댓글

관련 채용 정보