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

 

프로그래머스

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

programmers.co.kr


문제 해결을 위한 과정

이 문제의 경우 dict를 이용하면 쉽게 해결할 수 있었습니다. 얼굴(1번 용품, 2번 용품), 상의(1번 용품, 2번 용품), 하의(1번 용품) 이렇게 있을 때 입는 경우는 다음과 같습니다.

얼굴(1번 용품, 2번 용품, 아무것도 안 입는 경우) - 3가지

상의(1번 용품, 2번 용품, 아무것도 안입는 경우) - 3가지

하의(1번 용품, 아무것도 안 입는 경우) - 2가지

결과 =  3 x 3 x 2 - 1(아무것도 안 입는 경우)

이를 일반화 하면 다음과 같습니다.

(얼굴 + 1) * (상의  + 1) * (하의 * 1) - 1


소스코드
def solution(clothes):
    answer = 1
    cloth_dict = {}
    for name, type in clothes:
        if type in cloth_dict:
            cloth_dict[type] += 1
        else:
            cloth_dict[type] = 1
    for name, type in clothes:    
        if cloth_dict[type] != 0:
            num = cloth_dict[type]
            cloth_dict[type] = 0
            answer *= (num + 1)
    answer -= 1
    return answer

'알고리즘 > 프로그래머스' 카테고리의 다른 글

프로그래머스 폰켓몬(Python)  (0) 2024.04.07
프로그래머스 전화번호 목록(Python)  (1) 2024.04.07
신고 결과 받기(Python)  (0) 2022.02.20
실패율 (Python)  (0) 2021.01.11
가사 검색 (Python)  (0) 2020.12.17

+ Recent posts