- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42578

 

마지막에 answer - 1을 해주는 이유는 아무것도 입지 않는 경우를 빼줘야하기 때문이다 

 

문제 이해

1. dic에 옷의 종류별로 몇개인지 숫자를 센 다음에

 

2. 각 옷들로 몇 가지의 조합이 되는지 알아보는 거니까 (각 옷의 종류 + 1)을 해서 다 곱해준다

+ 1을 하는 이유는 그 옷을 입지 않는 경우도 있기 때문이다

 

3. 이렇게 하면 모든 옷을 입지 않는 경우도 포함되므로 이는 빼주고 반환해주면 답이다

 

- 정답 풀이 :

def solution(clothes):
    #의상 종류, 의상 이름 리스트 
    dic = {}
    for clothe in clothes:
        a, b = clothe[0], clothe[1]
        if b in dic:
            dic[b] += 1
        else:
            dic[b] = 1
            
    answer = 1
    for i in dic:
        answer *= (dic[i] + 1)
    
    return answer - 1

 

- 시도해본 풀이 : 

def solution(clothes):
    #의상 종류, 의상 이름 리스트 
    dic = {}
    for clothe in clothes:
        a, b = clothe[0], clothe[1]
        if b in dic:
            dic[b] += 1
        else:
            dic[b] = 1
            
    answer = 1
    
    for i in dic:
    	#여기랑
        answer *= dic[i]
    #여기가 미흡했음
    answer += len(clothes)   
    
    return answer

+ Recent posts