우주에서 글을 적어본다
99클럽 코테 스터디 6일차 TIL + 경우의 수 본문
[오늘의 학습 키워드 및 문제]
- 프로그래머스의 "의상" 문제를 풀었다.
- 오늘 주제도 해시이나 수학적인 접근도 필요했다.
- 경우의 수를 물어보는 문제니까 어떤 특정 공식이 있을 거라 판단했다.
[나의 코드]
def solution(clothes):
answer = 1
combi = {}
for dress in clothes:
if dress[1] not in combi:
combi[dress[1]] = []
combi[dress[1]].append(dress[0])
for i in combi:
answer *= len(combi[i]) + 1
return answer - 1
① 딕셔너리 만드는 부분
- 처음에는 배열로 만들지 않고 바로 개수 세서 int 형을 넣었다. 근데 아래 계산에서 문제가 생겨서 배열로 바꿔주었다.
- 딕셔너리에 배열이 들어가는지 몰랐는데 처음 알게 되었다.
② 조합 계산하는 부분
- 전체 조합의 개수를 계산하고 마지막 return에서 모두 입지 않는 경우의 수를 빼주면 된다.
- len(combi[i]) + 1 부분에서 왜 1을 더하냐면 모든 옷을 입지 않는 경우까지가 모든 경우의 수이기 때문이다.
- 마직막 return에서 1을 빼는 이유는 전체 조합의 개수에서 모든 옷을 입지 않는 경우를 빼준 수이기 때문이다.
③ 1로 초기화
- 별 이야기 아니지만 곱셈할 때 변수의 초기값을 1로 맞춰둬야 한다. 0에 어떤 값을 곱해도 언제나 0일지니...
[오늘의 회고]
- 늘 생각하는 거지만 여사건... 뭔가 조건에서 힌트가 여사건으로 푸세요라고 손짓하는 기분이 든다. 기분 탓인가?
- 조건이 "코니는 하루에 최소 한 개의 의상은 입습니다." 이니까 조건에서 얻을 수 있는 정보도 최대한 활용해야 겠다.
- 마지막으로 변수 이름을 예쁘게 짓고 싶다. 끝!
'항해99 TIL' 카테고리의 다른 글
99클럽 코테 스터디 8일차 TIL + 스택과 수학 머리 (0) | 2024.07.29 |
---|---|
99클럽 코테 스터디 7일차 TIL + 하노이의 탑(재귀) (0) | 2024.07.28 |
99클럽 코테 스터디 5일차 TIL + 해시(Hash) + in 연산자 (0) | 2024.07.26 |
99클럽 코테 스터디 4일차 TIL + capitalize() (0) | 2024.07.25 |
99클럽 코테 스터디 3일차 TIL + 정렬 (0) | 2024.07.24 |