우당탕탕 개발일지
[해시] 프로그래머스 level 2 의상 (Python 파이썬) 본문
💡문제 링크
💡문제 분석 요약
옷의 조합의 개수를 구하는 문제
중복 사용 불가능
옷을 최소 하나 이상 선택해야 해
💡알고리즘 설계
예를 들어 옷의 종류가 상의 하의만 있고, 상의가 3개 하의가 4개 있을 경우 만들어낼 수 있는 옷의 조합은 (3+1)*(4+1) - 1 = 19가지이다.
따라서 옷의 종류별 옷이 뭐가 있는지 파악할 수 있도록 딕셔너리를 만들고,
딕셔너리의 길이를 구해서 각 종류별로 옷이 몇 개 있는지 파악한다
그다음에 곱셈을 통해 조합의 개수를 구한다.
💡코드
def solution(clothes):
closet = {}
answer = 1
for i in clothes:
if i[1] in closet:
closet[i[1]].append(i[0])
else:
closet[i[1]] = [i[0]]
for c in closet:
answer *= ( len(closet[c]) + 1)
print(answer)
return answer - 1
💡 오답 풀이
...
💡 다른 풀이
...
💡 느낀점 or 기억할정보
딕셔너리에 아직 없는 key라면 추가해주고, 이미 있는 key라면 value 리스트에 append를 해준다
딕셔너리 abc = {"a" : [1, 2, 3]}일 때,
len(a) = 1이고(a라는 키 자체의 길이) len(abc[a]) = 3이다(a라는 키에 대응하는 값의 길이)
'알고리즘' 카테고리의 다른 글
[DFS/BFS] 백준 14502번: 연구소 Gold IV(Python 파이썬) (0) | 2024.02.14 |
---|---|
[DFS/BFS] 백준 18352번: 특정 거리의 도시 찾기 Silver II (Python 파이썬) ⭐ (0) | 2024.02.14 |
[해시] 프로그래머스 level 2 전화번호 목록 (Python 파이썬) (0) | 2024.02.08 |
[정렬] 프로그래머스 실패율 (1) | 2023.11.14 |
[DFS/BFS] 백준 2178번 미로탐색(Python 파이썬) (0) | 2023.11.09 |