Notice
Recent Posts
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 |
Tags
- react-redux
- memory
- Operating System
- 리덕스장바구니
- 자료구조
- js to ts
- 알고리즘
- 분할메모리할당
- codeup
- 기초100제
- 코드업
- 파이썬
- 백준
- 스프링
- 프로그래머스
- OS
- 일상
- 협업
- 타입스크립트
- react
- 공부
- C++
- Spring
- 토이프로젝트
- CPU 스케줄링
- Redux
- error
- web
- Java
- 정렬
Archives
- Today
- Total
감자튀김 공장🍟
[백준/9375] 패션왕 신해빈 (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
dic = {}
for _ in range(n):
cloth, category = input().split()
if category in dic.keys():
dic[category] += 1
else:
dic[category] = 1
res = 1
for key in dic:
res *= (dic[key] + 1)
print(res - 1)
✔ 설명
조합론 문제이다.
옷의 종류 별로 분류를 하여 (a 종류의 옷 개수 + 1) * (b 종류의 옷 개수 + 1) * ... - 1 (알몸인 경우) 와 같은 식을 세울 수 있다.
딕셔너리를 사용하여 해당 key값에 옷의 종류를 value 값에는 key 종류의 옷 개수를 주어 위의 공식과 같이 계산했다.
✔ 후기
🔥 문제의 코드
for _ in range(n):
cloth, category = map(str, input().split())
if category in dic:
dic[category] += cloth
else:
dic[category] = cloth
결과
{'headgear': 'hatturban', 'eyewear': 'sunglasses'}
{'face': 'masksunglassesmakeup'}
딕셔너리 사용해야지! 라는 생각에 시도했다가 장렬하게 실패했다 (〃⌒▽⌒〃)ゝ
cloth을 리스트 형식으로 추가하고 싶었는데 이렇게 사용할거면 defaultdict를 사용해야하는 것 같다.
굳이 개수만 세도 되기 때문에 dic[key] += 1 만 해도 되는건데 이상한 부분에 꽂혀서 시간만 더 날렸다.
조합론인건 알았는데 공식을 다르게 세워서 어버버버 하다가 결국 구글링해서 공식을 보고 풀었다.
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/2004] 조합 0의 개수 (with 파이썬) (0) | 2022.12.25 |
---|---|
[백준/1676] 팩토리얼 0의 개수 (with 파이썬) (0) | 2022.12.24 |
[백준/1010] 다리 놓기 (with 파이썬) (0) | 2022.12.22 |
[백준/11051] 이항 계수 2 (with 파이썬) (0) | 2022.12.21 |
[백준/11050] 이항 계수 1 (with 파이썬) (0) | 2022.12.20 |
Comments