[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 실전에서 유용한 표준 라이브러리

2025. 5. 22. 23:31·Study/Python

실전에서 유용한 표준 라이브러리

  • 내장 함수 : 기본 입출력 함수부터 정렬 함수까지 기본적인 함수들을 제공한다.
    • 파이썬 프로그램을 작성할 때 없어서는 안 되는 필수적인 기능을 포함하고 있다.
  • itertools : 파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공한다.
    • 특히 순열과 조합 라이브러리는 코딩 테스트에서 자주 사용된다.
  • heapq : 힙(Heap) 자료구조를 제공한다.
    • 일반적으로 우선순위 큐 기능을 구현하기 위해 사용된다.
  • bisect : 이진 탐색(Binary Search) 기능을 제공한다.
  • collections : 덱(deque), 카운터(Counter) 등의 유용한 자료구조를 포함한다.
  • math : 필수적인 수학적 기능을 제공한다.
    • 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련 함수부터 파이(pi)와 같은 상수를 포함한다.

자주 사용되는 내장 함수

# sum
# 다수의 데이터를 포함하는 리스트나 튜플이 주어졌을 때, 모든 원소의 합을 반환한다.
result = sum([1, 2, 3, 4, 5])
print(result) # 15

# min(), max()
# 가장 작은 값 혹은 가장 큰 값을 얻고자 할 때 사용한다.
min_result = min(7, 3, 5, 2)
max_result = max(7, 3, 5, 2)
print(min_result, max_result) # 2 7

# eval()
# 수식을 계산한 결과를 반환한다.
result = eval("(3+5)*7")
print(result) # 56
# sorted()
# 반복 가능한 객체가 들어왔을 때, 원소를 정렬한 결과를 반환한다.
result = sorted([9, 1, 8, 5, 4])
reverse_result = sorted([9, 1, 8, 5, 4], reverse=True)
print(result) # [1, 4, 5, 8, 9]
print(reverse_result) # [9, 8, 5, 4, 1]

# sorted() with key
# 정렬 기준을 key 속성으로 명시해줄 수 있다.
# 정렬 기준은 lambda 함수 형태를 이용하는 경우가 많다.
array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(array, key=lambda x: x[1], reverse=True)
print(result)
# [('이순신', 75), ('아무개', 50), ('홍길동', 35)]

순열과 조합

  • 모든 경우의 수를 고려해야 할 때 어떤 라이브러리를 효과적으로 사용할 수 있을까?
  • 순열 : 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것 (순서 고려)
    • {'A', 'B', 'C'}에서 세 개를 선택하여 나열하는 경우: 'ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA'
  • 조합 : 서로 다른 n개에서 순서와 상관 없이 서로 다른 r개를 선택하는 것
    • {'A', 'B', 'C'}에서 순서를 고려하지 않고 두 개를 뽑는 경우 : 'AB', 'AC', 'BC'

순열의 수 : nPr =  n * (n - 1) * (n - 2) * · · · * (n - r + 1)

조합의 수 : nCr = n * (n - 1) * (n - 2) * · · · * (n - r + 1) / r!

순열 구하는 코드

from itertools import permutations
# itertools에 정의되어 있는 permutations 라이브러리 활용

data = ['A', 'B', 'C'] # 데이터 준비

result = list(permutations(data, 3)) # 모든 순열 구하기
print(result)

# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

조합 구하는 코드

from itertools import combinations
# itertools에 정의되어 있는 combinations 라이브러리 활용

data = ['A', 'B', 'C'] # 데이터 준비

result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합 구하기
print(result)

# [('A', 'B'), ('A', 'C'), ('B', 'C')]

중복 순열과 중복 조합

# 중복 순열
from itertools import product
# itertools에 정의되어 있는 product 라이브러리 활용

data = ['A', 'B', 'C'] # 데이터 준비

result = list(product(data, repeat=2)) # 2개를 뽑는 모든 순열 구하기 (중복 허용)
print(result)


# 중복 조합
from itertools import combinations_with_replacement
# itertools에 정의되어 있는 combinations_with_replacement 라이브러리 활용

data = ['A', 'B', 'C'] # 데이터 준비

result = list(combinations_with_replacement(data, 2)) # 2개를 뽑는 모든 조합 구하기 (중복 허용)
print(result)

Counter

  • 파이썬 collections 라이브러리 Counter는 등장 횟수를 세는 기능을 제공한다.
  • 리스트와 같은 반복 가능한(iterable) 객체가 주어졌을 때 내부의 원소가 몇 번씩 등장했는지를 알려준다.
from collections import Counter
# collections에 정의되어 있는 Counter 라이브러리 활용

counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])

print(counter['blue']) # 'blue'가 등장한 횟수 출력
print(counter['green']) # 'green'이 등장한 횟수 출력
print(dict[counter]) # 사전 자료형으로 반환

# 3
# 1
# {'red': 2, 'blue': 3, 'green': 1}

최대 공약수와 최소 공배수

  • 최대 공약수를 구해야 할 때는 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) 계산

# 7
# 42

'이것이 취업을 위한 코딩 테스트다 with 파이썬'의 교재를 보고 작성한 내용입니다.
반응형

'Study > Python' 카테고리의 다른 글

[이것이 코딩 테스트다 with 파이썬] | 그리디 & 구현 | 구현: 시뮬레이션과 완전 탐색  (0) 2025.05.23
[이것이 코딩 테스트다 with 파이썬] | 그리디 & 구현 | 그리디  (0) 2025.05.23
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 함수와 람다 표현식  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 반복문  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 조건문  (0) 2025.05.22
'Study/Python' 카테고리의 다른 글
  • [이것이 코딩 테스트다 with 파이썬] | 그리디 & 구현 | 구현: 시뮬레이션과 완전 탐색
  • [이것이 코딩 테스트다 with 파이썬] | 그리디 & 구현 | 그리디
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 함수와 람다 표현식
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 반복문
Jio_ni
Jio_ni
안녕하세요!! 개발 공부를 하고 있는 뽀시래기 강지현입니다!!
  • Jio_ni
    지현이의 개발 블로그
    Jio_ni
  • 전체
    오늘
    어제
    • 분류 전체보기 (202)
      • LG AI (4)
      • About (0)
      • ELITE HACKER bootcamp (12)
        • Pre.web (12)
        • Main.web (0)
      • Study (31)
        • Python (13)
        • C언어 (0)
        • Java (0)
        • HTML (8)
        • CSS (0)
        • Linux (0)
        • Web hacking (0)
        • git (4)
        • 혼공학습단 (1)
        • 유니티 (1)
        • 코딩 자율학습단 (4)
      • Project (0)
      • 코딩테스트 (153)
        • CodeUp (76)
        • 프로그래머스 (20)
        • 백준 (47)
        • SWEA (10)
      • 자격증 (1)
      • Book (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CodeUp
    Python
    ADsP 벼락치기
    전공자
    ADsP 자격증 합격 후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Jio_ni
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 실전에서 유용한 표준 라이브러리
상단으로

티스토리툴바