itertools ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์จ์ ์ผ๋ก ์์ด๊ณผ ์กฐํฉ์ ๊ตฌํํ ์ ์๋ค.
permutations( ) - ์์ด
์์ด์ ์๋ก ๋ค๋ฅธ n๊ฐ์ ๋ค๋ฅธ ์์๋ฅผ ๊ฐ์ง๋ ์ด๋ค ์งํฉ์์ ์ค๋ณต ์์ด ์์์ ์๊ด ์๊ฒ r๊ฐ์ ์์๋ฅผ ์ ํํ๊ฑฐ๋ ๋์ดํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
import itertools
arr = ['A', 'B', 'C', 'D']
nPr = itertools.permutations(arr, 2)
print(list(nPr))
"""
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'),
('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'),
('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C')]
"""
combinations( ) - ์กฐํฉ
์กฐํฉ์ ์๋ก ๋ค๋ฅธ n๊ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ์ด๋ค ์งํฉ์์ ์ค๋ณต ์์ด ์์์ ์๊ด ์์ด r๊ฐ์ ์์๋ฅผ ์ ํํ๊ฑฐ๋ ๋์ดํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
import itertools
arr = ['A', 'B', 'C', 'D']
nCr = itertools.combinations(arr, 2)
print(list(nCr))
## [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
product( ) - ์ค๋ณต ์์ด
์๋ก ๋ค๋ฅธ n๊ฐ์ ์์์ ๋ํ์ฌ ์ค๋ณต์ ํ์ฉํ์ฌ ๊ฐ๋ฅผ ๋ฝ์ ์์ ์๊ฒ ๋์ดํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
import itertools
arr = ['A', 'B', 'C', 'D']
a = itertools.product(arr, repeat=2)
print(list(a))
"""
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'),
('B', 'A'), ('B', 'B'), ('B', 'C'), ('B', 'D'),
('C', 'A'), ('C', 'B'), ('C', 'C'), ('C', 'D'),
('D', 'A'), ('D', 'B'), ('D', 'C'), ('D', 'D')]
"""
combinations_with_replacement( ) - ์ค๋ณต ์กฐํฉ
์๋ก ๋ค๋ฅธ n๊ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ์ด๋ค ์งํฉ์์ ์ค๋ณต์ ์๊ด ์์ด, ์์์ ์๊ด ์์ด r๊ฐ์ ์์๋ฅผ ์ ํ
import itertools
arr = ['A', 'B', 'C', 'D']
a = itertools.combinations_with_replacement(arr, 2)
print(list(a))
"""
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'),
('B', 'B'), ('B', 'C'), ('B', 'D'),
('C', 'C'), ('C', 'D'),
('D', 'D')]
"""
'๐จLanguage > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ (2) | 2024.08.07 |
---|---|
[Python] sys.stdin.readline() ์ฌ์ฉํ๊ธฐ (0) | 2024.08.06 |