Coding - Algo/python

[프로그래머스] 위장 (python 파이썬)

jainn 2021. 6. 13. 00:11
728x90

문제

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

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

풀이 및 소스코드

딕셔너리를 사용해 풀었다.

key 값에는 headgear 와 같은 의상의 종류를 넣고 value 값에는 의상 종류에 대한 가짓수를 넣었다.

가짓수를 처음에 2로 초기화 했다.

실제는 1가지가 있는 게 맞지만 경우의 수를 구하기 위해서 그렇게 했다.

만약 headgear가 2종류, pants가 2종류라고 했을 때 입지 않은 경우도 있기 때문에

(2+1)*(2+1)을 해준 후, 둘다 입지 않은 경우는 없기 때문에 -1를 해주면 된다.

def solution(clothes):
    answer = 1
    dic = {}
    for c in clothes:
        if c[1] in dic.keys():
            dic[c[1]] += 1
        else:
            dic[c[1]] = 2
    for i in dic.values():
        answer *= i
    answer -= 1
    return answer
반응형