https://www.acmicpc.net/problem/9375
์์ด๋์ด
1. ์กฐํฉ
- ์ฒ์์ ๋ฌธ์ ๋ฅผ ๋ดค์ ๋ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์ ์กฐํฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํจ.
- ํ ์คํธ ์ผ์ด์ค์ n์ ์ต๋๊ฐ ์ ์ด ๊ฐ๋ฅํ ๊ฑฐ๋ผ ์๊ฐํ์ง๋ง ๋ค์ ์๊ฐํด๋ณด๋ ์กฐํฉ์ด๋ฉด ๊ฒฝ์ฐ์ ์๊ฐ ์์ฒญ ๋ง์์ง๋
- ์๊ฐ ์ด๊ณผ๊ฐ ๋ด๋ค.
2. ์ํ
- ์ด๋ฆด ๋ ๋ฐฐ์ ๋ ๊ฒฝ์ฐ์ ์ ๋ฌธ์ ๋ฅผ ์๊ฐํ๋ฉด ๊ธ๋ฐฉ ํ ์ ์๋ค.
- ๋์ ๋๋ฆฌ์ ๊ฐ์ด ์ฐ๋ฉด ๋งค์ฐ ๊ฐํธํ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅ.
์ฝ๋ ์ค๋ช
cloth = {}
result = 1
n = int(input())
for _ in range(n):
name, type = sys.stdin.readline().rstrip().split()
if not type in cloth:
cloth[type] = 1
else:
cloth[type] += 1
for i in cloth:
result *= (cloth[i] + 1)
print(result - 1)
์ฝ๋๋ฅผ ์ง๋๋ฐ ์ด๋ ค์ด ๋ถ๋ถ์ ์๊ณ ์ํ์ผ๋ก ์ ๊ทผํ๋ฉด ๋งค์ฐ ๊ฐ๋จํ๋ค.
๋ฌธ์ ์์ ํด๋น์ด๋ ์ ์ด๋ 1๊ฐ๋ง ๊ฑธ์น๋ฉด ๋ฐ์ ๋๊ฐ ์ ์๋ค. ์ฆ ์ท์ ์ ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์์์ ์ ๋ถ๋ค ์ ์ ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํด์ ๊ณ์ฐํ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด ์์ 2๊ฐ, ๋ฐ์ง 3๊ฐ๊ฐ ์๋ค๋ฉด (2 + 1(์์๋ฅผ ์ ์ ๋ ๊ฒฝ์ฐ)) * (3 + 1(๋ฐ์ง๋ฅผ ์ ์ ๋ ๊ฒฝ์ฐ)) - 1
์ผ๋ก ์ด ๊ฒฝ์ฐ์ ์๋ 11์ด๋ค.
๋์ ๋๋ฆฌ์ key๋ฅผ ์ท์ ์ข ๋ฅ๋ก ์ ํ๋ค.
์ท์ด ์ด๋ฏธ ์๋ ์ข ๋ฅ๋ฉด key์ ํด๋นํ๋ ๊ฐ์ +1 ํด์ฃผ๊ณ ์๋๋ผ๋ฉด ์๋กญ๊ฒ key๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
์ต์ข ๊ฐ์ ์์์ ๋งํ๋ฏ์ด -1(๋ชจ๋ ์ท์ ์ ์ ๋ ๊ฒฝ์ฐ)์ ํด์ฃผ๋ฉด ๋์ด๋ค.
์ ์ฒด ์ฝ๋
import sys
T = int(input())
for _ in range(T):
cloth = {}
result = 1
n = int(input())
for _ in range(n):
name, type = sys.stdin.readline().rstrip().split()
if not type in cloth:
cloth[type] = 1
else:
cloth[type] += 1
for i in cloth:
result *= (cloth[i] + 1)
print(result - 1)
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 16928 ๋ฑ๊ณผ ์ฌ๋ค๋ฆฌ ๊ฒ์ (python ํ์ด์ฌ) (0) | 2022.07.03 |
---|---|
[๋ฐฑ์ค] 5525 IOIOI (python ํ์ด์ฌ) (0) | 2022.07.03 |
[๋ฐฑ์ค] 1074 Z (python ํ์ด์ฌ) (0) | 2022.06.26 |
[๋ฐฑ์ค] 9019 DSLR (python ํ์ด์ฌ) (0) | 2022.06.26 |
[๋ฐฑ์ค] 14500 ํ ํธ๋ก๋ฏธ๋ ธ (python ํ์ด์ฌ) (0) | 2022.06.23 |