홍우진의 개발 일기장
[백준] 9375번: 패션왕 신해빈 / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/9375
풀이 코드
t = int(input())
for _ in range(t):
n = int(input())
wear = {}
for i in range(n):
a,b = input().split() #값을 이름과 종류로 나눈다.
if b not in wear: #종류가 딕셔너리에 없다면
wear[b] = 1 #종류를 추가한다.
else: #만약 있다면 키값을 1 더한다.
wear[b] += 1
a = 1
for i in wear:
a *= wear[i]+1 #(x 개수 + 1) * (y 개수 + 1) ... * (z 개수 + 1)
print(a-1)
코드 해석
다음과 같은 규칙을 찾을 수 있다.
경우의 수 = (x종류의 개수 + 1) * (y종류의 개수 + 1) ... * (z종류의 개수 + 1) - 1
의상을 착용해도 되고 안해도 되기 때문에
각 종류의 개수에 +1을 해주고,
모든 의상을 착용하지 않은 경우를 제외시켜줘야 하기 때문에
마지막에 -1을 하면 총 경우의 수가 도출된다.
딕셔너리를 이용하여 종류를 key에 저장하고 그 종류가 나온 개수를 카운팅 하여 value에 저장한다.
그 후 규칙에 맞춰 계산하고
출력 시 -1을 한 뒤 출력한다.
코드는 할 만 했지만 규칙을 찾기가 헷갈렸다.
난이도: ★★★☆☆
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2566번: 최댓값 / 파이썬 (1) | 2025.01.03 |
---|---|
[백준] 25206번: 너의 평점은 / 파이썬 (0) | 2025.01.02 |
[백준] 18870번: 좌표 압축 / 파이썬 (0) | 2024.12.31 |
[백준] 25192번: 인사성 밝은 곰곰이 / 파이썬 (0) | 2024.12.30 |
[백준] 2851번: 슈퍼 마리오 / 파이썬 (0) | 2024.12.29 |
Comments