반응형
Recent Posts
Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BOJ
- 개발자 취업
- 구현
- 혁펜하임
- 코딩테스트 준비
- 개발자취업
- 큐
- 99항해
- boj 2309
- 활성화 함수
- 프로그래머스
- 스택
- 백준 2309
- leetcode
- Python
- til
- 해시
- 파이썬
- easy 딥러닝
- 99클럽
- 알고리즘
- 백준
- 코딩테스트준비
- python 2309
- dfs
- 항해99
- 딥러닝
- softeer
- BFS
- 기능개발
Archives
- Today
- Total
동까의 코딩
[python] 프로그래머스 - 의상 본문
반응형
위장 문제 풀이: 해시맵을 활용한 조합 계산
프로그래머스의 의상 문제는 주어진 옷들의 조합을 통해 가능한 경우의 수를 계산하는 문제입니다.
각 옷 종류별로 선택할 수 있는 경우의 수는 해당 종류의 옷 개수에 1을 더한 값이며, 모든 경우의 수를 곱한 후, 아무것도 선택하지 않는 경우를 제외한 값을 반환합니다.
풀이 과정
딕셔너리 생성:
입력으로 주어진clothes
리스트를 순회하며, 옷의 종류를 key로 하고, 해당 종류에 속하는 옷의 이름을 리스트에 저장합니다.조합 계산:
각 옷 종류별로 선택할 수 있는 경우의 수는len(옷 리스트) + 1
입니다.
이를 모든 옷 종류에 대해 곱한 값을 구합니다.결과 도출:
최종적으로 모든 경우의 수에서 아무것도 선택하지 않는 경우(1)를 빼서 결과를 반환합니다.
코드 구현
def solution(clothes):
answer = 1
hashmap = {}
for value, key in clothes:
# 중복되는 키가 등장하면 value 값을 더해준다.
if key in hashmap.keys():
hashmap[key] += [value]
# 중복되지 않는 키 값이 등장하면 새로 만들어 줌.
else:
hashmap[key] = [value]
# 각 옷 종류별 선택 가능한 경우의 수(자기 자신 포함)를 곱해준다.
for _, value in hashmap.items():
answer *= (len(value) + 1)
return answer - 1
```
반응형
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[python] 프로그래머스 - 기능개발 (0) | 2025.03.12 |
---|---|
[python] 프로그래머스 - 베스트 앨범 (1) | 2025.03.12 |
[python] 프로그래머스 - 전화번호 목록 (0) | 2025.03.11 |
[python] 프로그래머스 - 완주하지 못한 선수 (0) | 2025.03.11 |
[python] 프로그래머스 - 폰켓몬 (0) | 2025.03.11 |