-
[Programmers] ํ๋ณดํค with PythonPS 2021. 11. 27. 21:30728x90๋ฐ์ํ
๐ Programmers - [ํ๋ณดํค]
๐ก ์กฐ๊ฑด
relation ์ 2์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด์ด๋ค.
1 <= relation ์ ์ปฌ๋ผ์ ๊ธธ์ด <= 8
1 <= relation ์ ๋ก์ฐ์ ๊ธธ์ด <= 20
1 <= relation ์ ๋ชจ๋ ๋ฌธ์์ด์ ๊ธธ์ด <= 8, ์ํ๋ฒณ ์๋ฌธ์์ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
์ค๋ณต๋๋ ํํ์ ์๋ค.
ํ์๋ค์ ์ธ์ ์ฌํญ์ด ์ฃผ์ด์ก์ ๋, ํ๋ณด ํค์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ผ.
์ฆ, ํ์๋ค์ ๊ตฌ๋ณํ ์ ์๋ ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ์งํค๋ ํค์ ์กฐํฉ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.์กฐํฉ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from itertools import combinations def solution(relation): col = len(relation[0]) row = len(relation) candidates = [] for i in range(1, col + 1): candidates.extend(combinations(range(col), i)) unique = [] for candi in candidates: tmp = [tuple([item[i] for i in candi]) for item in relation] if len(set(tmp)) == row: unique.append(candi) answer = set(unique) for i in range(len(unique)): for j in range(i + 1, len(unique)): if len(unique[i]) == len(set(unique[i]) & set(unique[j])): answer.discard(unique[j]) return len(answer)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
[["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]]
์คํ๊ฒฐ๊ณผ
2
โจ๏ธ ๋ฌธ์ ํ์ด
row
์column
์ ๊ฐ์๋ฅผ ๊ตฌํด ๋ณ์๋ก ๋๋ค.
ํค๊ฐ์ด ๋ ์ ์๋ 1๊ฐ๋ถํฐcolumn
์ ๊ธธ์ด์ ์กฐํฉ์ ๊ฐ๊ฐ ๊ตฌํด์candidates
์ ์ ์ฅํ๋ค.1๋ฒ์์ ๊ตฌํ ์กฐํฉ์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ํํ๋ฉด์ ํด๋น๋๋
relation
์ ๋ฐ์ดํฐ๋ฅผtmp
์ ์ ์ฅํ ํset()
์ผ๋ก ์๋ฃํ์ ๋ณ๊ฒฝํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ ํ,row์ ๊ฐ์
์ ๋น๊ตํ๋ค.
๋ง์ฝ ๊ฐ๋ค๋ฉด, ํ๋ณดํค๊ฐ ๋ ์ ์๋ ๊ฒ์ด๊ธฐ์unique
๋ณ์์ ์ ์ฅํ๋ค
์ถ์ถํ ๋ฐ์ดํฐ๊ฐ ์ ์ผ์ฑ์ ๊ฐ์ง๋์ง์ ๋ํด์ ๊ฒ์ฌํ๋ ๊ฒ.
answer
๋ณ์์ 3๋ฒ ์์ ์ ํตํด ๋์จunique
๋ณ์์ ์๋ ๋ฐ์ดํฐ๋ฅผset()
์๋ฃํ์ผ๋ก ์ค๋ณต์ ์ ๊ฑฐํ ๋ค ์ ์ฅํ๋ค.unique
๋ณ์์ ๊ธธ์ด๋งํผ ์ํํ๋ฉด์ (i)i
์ดํ์ ๊ฐ ํค์กฐํฉ์ (j)i
๊ฐ ํฌํจ์ด ๋์ด ์๋ค๋ฉด, answer์์j
๋ฅผ ์ ๊ฑฐํ๋ค.i
๊ฐj
์ ํฌํจ์ด ๋๋ค๋ฉด,j
๋ ์์ ํ๋๊ฐ ๋น ์ ธ๋์ต์์ฑ
์ ๋ง์กฑํ์ง ์๊ธฐ์ ์ ๊ฑฐํ๋ ๊ฒ.answer
์ ๊ธธ์ด๋ฅผ ๋ฐํ
๐พ ๋๋์
- ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์์ ์ ์ํ ์ต์์ฑ๊ณผ ์ ์ผ์ฑ์ ์ดํดํ๊ณ ๋ฌธ์ ๋ฅผ ํ์ดํด์ผํ๋ค.
- ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๊ธธ์ด์ ํฌ๊ธฐ๊ฐ ์์์ ์์ ํ์์ ํตํด์ ํ ์ ์์๋ค.
set()
์๋ฃ๊ตฌ์กฐ์ ์ฑ์ง์ ํตํด์ ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์๋ค๋ฉด ๋ ํธํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์๋ฌผ์ ์ ์ด์ with Python (0) 2021.11.29 [Programmers] ๊ธฐ๋ฅ๊ณผ ๋ณด ์ค์น with Python (0) 2021.11.28 [Programmers] ์คํ์ฑํ ๋ฐฉ with Python (0) 2021.11.21 [๋ฐฑ์ค] 14725 ๊ฐ๋ฏธ๊ตด with Python (0) 2021.11.21 [๋ฐฑ์ค] 13334 ์ฒ ๋ก with Python (0) 2021.10.25