혜온의 이것저것

[코딩테스트 고득점 kit] 해시 - 위장 (Python) 본문

Algorithm/Programmers

[코딩테스트 고득점 kit] 해시 - 위장 (Python)

혜온 :) 2023. 4. 5. 15:49
문제 이해 및 설명

문제를 읽고 우선 종류에 따라 딕셔너리를 만들어줘야 겠다고 생각했다.

처음에는 리스트로 딕셔너리를 만들어주었다가 옷 이름은 별로 중요하지 않고 몇 개의 옷을 가지고 있는지가 중요해서 Counter를 사용하여 종류와 개수를 알려주는 딕셔너리를 만들었다.

이후 규칙을 찾아서 답을 return해주었다.

한 종류의 옷이 a,b,c 있을 때 하나도 포함 안되는 경우, a만 포함되는 경우, b만 포함되는 경우, c만 포함되는 경우 이렇게 4가지 종류로 등장 가능하다.

다른 종류의 옷들도 마찬가지로 적용된다.

따라서 각 옷 종류마다 가능한 경우의 수를 모두 곱해주고 모두가 다 포함안되는 경우를 제외하기 위해 1을 빼주면 답이 나온다

 

최종코드
def solution(clothes):
    answer=1
    cate_cnt=Counter([cate for name, cate in clothes])
    for cnt in cate_cnt.values():
        answer*=(cnt+1)
    return answer-1

from collections import Counter

 

문제 출처

프로그래머스 코딩테스트 고득점 kit

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

 

프로그래머스

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

programmers.co.kr

 

Comments