-
[๋ฐฑ์ค] 2422 ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ with PythonPS 2022. 2. 13. 23:35728x90๋ฐ์ํ
๐ BOJ 2422 ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ
๐ก ์กฐ๊ฑด
์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ์๋ N์ข ๋ฅ์ ์์ด์คํฌ๋ฆผ์ด ์๋ค.
๋ชจ๋ ์์ด์คํฌ๋ฆผ์ 1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ์๋ค.
์ด๋ค ์ข ๋ฅ์ ์์ด์คํฌ๋ฆผ์ ํจ๊ป๋จน์ผ๋ฉด, ๋ง์ด ์์ฃผ ํํธ์์ด์ง๋ค.์ ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 200, 0 โค M โค 10,000)
N์ ์์ด์คํฌ๋ฆผ ์ข ๋ฅ์ ์์ด๊ณ , M์ ์์ด๋จน์ผ๋ฉด ์ ๋๋ ์กฐํฉ์ ๊ฐ์์ด๋ค.๊ฐ์ ์กฐํฉ์ ๋ ๋ฒ ์ด์ ๋์ค์ง ์๋๋ค.
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ, ๊ทธ๋ํ ์ด๋ก ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin from itertools import combinations n, m = map(int, stdin.readline().split()) ice_cream = set(x for x in range(1, n + 1)) nope = {x: set() for x in range(1, n + 1)} for _ in range(m): a, b = map(int, stdin.readline().split()) nope[a].add(b) nope[b].add(a) res = 0 for comb in list(set(combinations(ice_cream, 3))): if comb[1] not in nope[comb[0]] and comb[2] not in nope[comb[0]] and comb[1] not in nope[comb[2]]: res += 1 print(res)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
5 3 1 2 3 4 1 3
์คํ๊ฒฐ๊ณผ
3
โจ๏ธ ๋ฌธ์ ํ์ด
์ ๋ ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ ๋ณด๋ค ๊ทธ๋ํ ์ด๋ก ์ผ๋ก ํ์ดํ๋๊ฒ ์ฌ์ ์ต๋๋ค.
๊ทธ๋ํ๋ก ์ฌ์ฉํ nope dict ์๋ฃํ ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค.
ํค ๊ฐ์ ๊ฐ ์์ด์คํฌ๋ฆผ์ ๋ฒํธ์ด๋ฉฐ, value๋ set()์ผ๋ก ์ค์ ํ์ต๋๋ค.
์์ด์คํฌ๋ฆผ์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ ice_cream set() ์๋ฃํ ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค.์์ด๋ฉด ์๋๋ ๊ฐ ์์ด์คํฌ๋ฆผ์ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฒ๋ฆฌ๋ฅผ ํด์ค๋๋ค.
a ์ b ๊ฐ ์์ด๋ฉด ์๋๋ ์กฐํฉ์ด๋ผ๋ฉด, nope[a]์ b๋ฅผ ๋ฃ์ด์ฃผ๊ณ , nope[b]์ a ๋ฅผ ๋ฃ์ด์ค๋๋ค.1๋ฒ๋ถํฐ N๋ฒ๊น์ง ์์ด์คํฌ๋ฆผ์์ ์ธ๊ฐ์ง ์กฐํฉ์ ์ฐพ์์ผํ๊ธฐ์, combinations ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐํฉ์ ๋ง๋ค์ด์ค๋๋ค.
์ค๋ณต๋ฐฉ์ง๋ฅผ ์ํด์ set()์ผ๋ก ๋๋ฌ์ธ์ฃผ๊ณ ์ํ๋ฅผ ์์ํฉ๋๋ค.์กฐํฉ์ผ๋ก ์ ํ๋ ์ธ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ์ง ์์ด์คํฌ๋ฆผ์ nope ์๋ฃ๊ตฌ์กฐ์ ํค๊ฐ์ผ๋ก ๋ฃ์์ ๋, ๋ฒํธ๊ฐ ํด๋นํ๋ ๊ณณ์ ์๋ค๋ฉด
์์ฌ๋ ๋๋ ์กฐํฉ์ด๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ res ๋ณ์์ +1 ์ ํด์ค๋๋ค.
dict ์๋ฃํ์ ์์ด๋ฉด ์๋๋ ์กฐํฉ์ ์๋ฐฉํฅ์ผ๋ก ์ ์ฅํด๋์๊ธฐ์, nope[x] ์์ x์ ๊ฐ์ ์์ค์ฝ๋๋ง๋ค ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.res๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๐พ ๋๋์
- ํด์๋งต ์๋ฃ๊ตฌ์กฐ(dict) ๋ฅผ ํตํด์ ๋ฌธ์ ํด๊ฒฐ์ ํ ๋ ๊ธฐ๋ถ์ด ์ข์ต๋๋ค.
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋์ด์๋๋ฐ, ์ฌ์ค ๊ทธ๋ํ ์ด๋ก ๋ฌธ์ ๋ก ๋ค์ด๊ฐ์ผํ๋๊ฒ ์๋๊ฐ ์ถ์ต๋๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 9663 N-Queen with Python (0) 2022.02.14 [๋ฐฑ์ค] 2477 ์ฐธ์ธ๋ฐญ with Python (0) 2022.02.14 [๋ฐฑ์ค] 1759 ์ํธ ๋ง๋ค๊ธฐ with Python (0) 2022.02.13 [๋ฐฑ์ค] 1236 ์ฑ ์งํค๊ธฐ with Python (0) 2022.02.10 [๋ฐฑ์ค] 14248 ์ ํ ์ ํ with Python (0) 2022.02.10