CS/알고리즘

[Algorithm] 코딩테스트에서 자주 쓰이는 파이썬 수학 내장함수

Joonfluence 2025. 1. 4.

1. 기본 내장 함수

1.1 abs()

절댓값을 반환합니다.

print(abs(-7))  # Output: 7

1.2 max() / min()
리스트나 튜플에서 최대값 또는 최소값을 구합니다.

numbers = [3, 5, 2, 9]
print(max(numbers))  # Output: 9
print(min(numbers))  # Output: 2

1.3 sum()

리스트나 튜플의 합계를 구합니다.

numbers = [1, 2, 3, 4]
print(sum(numbers))  # Output: 10

1.4 pow()

거듭제곱 계산.

print(pow(2, 3))  # Output: 8

1.5 round()

반올림을 수행합니다. 두 번째 인자로 소수점 자리수 설정 가능.

print(round(3.14159, 2))  # Output: 3.14

2. math 모듈

복잡한 수학 연산이 필요한 경우 math 모듈을 활용합니다.

import math

2.1 math.sqrt()

제곱근을 반환합니다.

print(math.sqrt(16))  # Output: 4.0

2.2 math.ceil() / math.floor()

  • ceil: 올림
  • floor: 내림
print(math.ceil(3.1))   # Output: 4
print(math.floor(3.9))  # Output: 3

2.3 math.gcd()
최대공약수를 구합니다.

print(math.gcd(48, 18))  # Output: 6

2.4 math.lcm()
최소공배수를 구합니다. (Python 3.9 이상에서 지원)

print(math.lcm(4, 6))  # Output: 12

2.5 math.factorial()
팩토리얼을 계산합니다.

print(math.factorial(5))  # Output: 120

2.6 math.log()
로그를 계산합니다. (기본값은 자연로그)

print(math.log(8, 2))  # Output: 3.0 (밑이 2인 로그)
2.7 math.comb() / math.perm()
comb(n, r): 조합 
𝑛
𝐶
𝑟
nC 
r
​

perm(n, r): 순열 
𝑛
𝑃
𝑟
nP 
r

(Python 3.8 이상에서 지원)

print(math.comb(5, 2))  # Output: 10
print(math.perm(5, 2))  # Output: 20
2.8 math.pi, math.e
math.pi: 원주율 
𝜋
π
math.e: 자연로그의 밑 
𝑒
e
python
코드 복사
print(math.pi)  # Output: 3.141592653589793
print(math.e)   # Output: 2.718281828459045

3. itertools 모듈

조합(combination), 순열(permutation) 문제에서 유용합니다.

3.1 itertools.combinations()
조합을 생성합니다.

from itertools import combinations

data = [1, 2, 3]
for comb in combinations(data, 2):
    print(comb)
# Output:
# (1, 2)
# (1, 3)
# (2, 3)

3.2 itertools.permutations()

순열을 생성합니다.

from itertools import permutations

data = [1, 2, 3]
for perm in permutations(data, 2):
    print(perm)
# Output:
# (1, 2)
# (1, 3)
# (2, 1)
# (2, 3)
# (3, 1)
# (3, 2)

4. functools 모듈

4.1 functools.reduce()
리스트에 누적 연산을 수행합니다. (곱셈 등)

from functools import reduce

data = [1, 2, 3, 4]
result = reduce(lambda x, y: x * y, data)
print(result)  # Output: 24

5. random 모듈

랜덤 숫자나 데이터 선택이 필요한 경우.

import random

print(random.randint(1, 10))  # 1과 10 사이의 랜덤 정수
print(random.choice([1, 2, 3]))  # 리스트에서 랜덤 선택
반응형

댓글