-
[프로그래머스] 의상(python)알고리즘 2024. 6. 11. 11:00

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

나의 풀이
def solution(clothes): answer = 1 clothes_dict = {} for clothe in clothes : if clothe[1] not in clothes_dict.keys() : # 옷 종류(key) 딕셔너리에 없으면 1 넣어서 만들기 clothes_dict[ clothe[1] ] = 1 else : # 위장할 종류(clo[1])가 딕셔너리에 이미 있으면 더하기 1 clothes_dict[ clothe[1] ] += 1 for key, value in clothes_dict.items() : answer *= ( value + 1 ) # 해당 key의 (value+1)만큼 경우의 수가 있음 answer -= 1 # 옷을 하나도 안입는 경우는 제외 return answer추가 코멘트
- 자료를 원하는 형식으로 받은 다음에는 사실 답을 도출하는 코드는 단 3줄 정도이다.(아래 참고)
for key, value in clothes_dict.items() : answer *= ( value + 1 ) # 해당 key의 (value+1)만큼 경우의 수가 있음 answer -= 1 # 옷을 하나도 안입는 경우는 제외- 예를 들어 얼굴, 상의, 하의 3가지의 종류가 있고 각 종류마다 차례로 경우의 수가 1, 2, 3이라면
종류별로 최대 1가지만 입을 수 있기 때문에 아무 것도 선택하지 않는 0을 포함하여 각 종류별 경우의수+1한 값을 모두 곱해주면 된다.
이때, 하루에 하나는 입어야 한다는 조건이 있으므로 모두 0을 선택한 1가지의 경우의수를 제외한 값이 answer가 된다.
'알고리즘' 카테고리의 다른 글
[그리디/heapq] 백준.1715 카드 정렬하기 (python) (0) 2024.07.02 [프로그래머스] 스택/큐 (python) (0) 2024.06.15 [프로그래머스] H-Index (0) 2024.06.13 [프로그래머스] 가장 큰 수(python) (0) 2024.06.12 [백준] 1012. 유기농 배추(python) (2) 2024.06.10