728x90
프로그래머스 코딩 테스트 연습 문제를 ChatGPT에게 물어보았습니다.
문제는 https://school.programmers.co.kr/learn/courses/30/lessons/42578 를 참조하세요.
[Python]
from collections import defaultdict
def solution(clothes):
counts = defaultdict(int)
for _, category in clothes:
counts[category] += 1
answer = 1
for count in counts.values():
answer *= count + 1
return answer - 1
위 코드에서 counts는 의상 종류별로 개수를 저장하는 딕셔너리입니다. defaultdict(int)를 사용하여 초기값을 0으로 설정하였습니다. 이후 clothes 배열을 순회하며 각 의상의 종류에 대한 개수를 셉니다.
다음으로 answer 변수를 1로 초기화하고, counts의 각 값에 대해 선택할지 말지를 결정하는 경우의 수를 계산합니다. 선택하지 않는 경우를 고려하기 위해 개수에 1을 더하였습니다. 모든 종류에 대해 계산된 경우의 수를 곱하여 최종 결과를 얻습니다.
마지막으로 선택하지 않는 경우를 제외하기 위해 최종 결과에서 1을 뺀 값을 반환합니다.
예시 입력에 대해 solution 함수를 호출하면 다음과 같은 결과가 반환됩니다.
[출처]
https://school.programmers.co.kr/learn/courses/30/lessons/42578