알고리즘/Python

[프로그래머스] 파이썬 - 의상

조이은 2023. 7. 7. 17:32

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Level 2. 의상

 

접근 방식
1. clothes에서 의상의 종류를 key로, 의상의 이름을 value로 가지는 딕셔너리를 만든다.
2. 1에서 만든 딕셔너리에서 key에 해당하는 (의상의 이름+1)을 딕셔너리 끝까지 곱한다.
3. 2에서 1을 뺀 결과값을 return한다.

 

def solution(clothes) :
    answer = 1
    
    clotheslist = {}
    for n, t in clothes :
        if t in clotheslist : 
            clotheslist[t].append(n)
        else:
            clotheslist[t] = [n]
    for t in clotheslist : 
        answer *= len(clotheslist[t])+1
        
    answer-=1
    
    return answer

 

 

value+1에서 1을 더 해주는 이유는 해당 옷의 종류를 안 입는 경우가 있을 수도 있으니 1을 곱해주고, 마지막 3단계에서 1을 빼는 이유는 모든 옷을 안 입는 경우가 있을 수 있으니 해당 경우를 제외한다.

코딩이 중요한 문제는 아니고 그냥 수학적으로 계산해야 되는 문제다..