https://school.programmers.co.kr/learn/courses/30/lessons/42578
[풀이]
def solution(clothes):
vd = dict()
# 초기화
for clothe in clothes:
vd[clothe[1]] = 0
# 딕셔너리 생성
for clothe in clothes:
vd[clothe[1]] += 1
# 각 리스트별 가짓수 곱하기, 안입는 경우 추가(+ 1)
first = 1
for i in vd.values():
first *= (i + 1)
return first - 1
- 딕셔너리 초기화 후
- 딕셔너리에 각 옷 종류마다의 가짓수를 생성
- 구성된 밸류 값을 받으면서, 각 옷의 종류를 곱해주면 끝
- 다만, 옷을 부위별로 안입는 경우도 있으니 이 종류를 더하기 위해 가짓수에 1씩 더해주고,
- 모두 안입는 경우는 없으니 1을 빼주면 된다.
[풀이 후기]
- 딕셔너리 구현이랑, 각 가짓수별로 곱하는 것까진 쉽게 했는데 뒤에 옷을 안입는 경우를 고려하는 데에 조금 시간이 걸렸다.
- 잘 생각이 났다기 보다는, 코드 실행해보면서 짜맞추다가 알게 되었다. ㅋㅋㅋ
- 확실히 해시 쪽은 어렵지 않은 것 같다.
'코딩테스트 스터디 > 프로그래머스' 카테고리의 다른 글
[LV3/SQL] 헤비 유저가 소유한 장소 (3) | 2023.07.15 |
---|---|
[LV 2/정렬] 가장 큰 수 (0) | 2023.07.15 |
[LV2/해시] 전화번호 목록 (0) | 2023.07.15 |
[LV2 SQL] 조건에 맞는 도서와 저자 리스트 출력하기(JOIN 에서 WHERE 와 ON 의 차이) (0) | 2023.07.14 |
[LV2] 귤고르기 (0) | 2023.07.14 |