순열과 조합
- 순열은 순서 상관있음. ‘CAB’ ≠ ‘CBA’
순열 라이브러리
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3)) # 모든 순열 구하기 (3개를 골라 순서 나열)
print(result)
조합 라이브러리
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2))
print(result)
중복 순열과 중복 조합
- product 라이브러리 - 중복 순열 구할 때
- combinations_with_replacement 라이브러리 - 중복 조합 구할 때
from itertools from product
data = ['A', 'B', 'C']
# 2개를 뽑는 모든 순열 구하기 (중복 허용)
result = list(product(data, repeat=2))
print(result)
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
# 2개를 뽑는 모든 조합 구하기 (중복 허용)
result = list(combinations_with_replacement(data, 2))
print(result)
Counter 라이브러리
- 파이썬 collections 라이브러리의 Counter는 등장 횟수를 세는 기능을 제공함.
- 리스트와 같은 반복 가능한 객체가 주어졌을 때, 내부의 원소가 각각 몇번씩 등장했는지 알려준다.
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수 출력
print(counter['green']) # 'green'이 등장한 횟수 출력
print(dict(counter)) # 사전 자료형으로 반환
최대 공약수와 최소 공배수
- math 라이브러리를 활용하면 된다. 최대공약수는 gcd(), 최소공배수는 직접 만들어줘야 함.
import math
# 최소 공배수(LCM)을 구하는 함수
def lcm(a, b):
return a * b // math.gcd(a, b)
a = 21
b = 14
print(math.gcd(21, 14)) # 최대 공약수(GCD) 계산
print(lcm(21, 14)) # 최소 공배수(LCM) 계산
'개발 > 파이썬' 카테고리의 다른 글
[Python] 문법 기초 - 함수와 람다 표현식 (0) | 2025.01.09 |
---|---|
[Python] 문법 기초 - 조건문과 반복문 (0) | 2025.01.09 |
[Python] 문법 기초 - 기본 입출력 (0) | 2025.01.09 |
[Python] 문법 기초 - 자료형 (0) | 2025.01.09 |
파이썬 - 함수 만들기 (리스트에서 소수만 출력해보기) (0) | 2024.12.31 |