본문 바로가기

추천 검색어

실시간 인기 검색어

코딩테스트에 필요한 파이썬 수학 라이브러리

당신의 코딩테스트 풀이 시간을 1/10로 줄여줄 ‘수학 함수 사전‘
김아인 지음
콩콩컴퍼니

2025년 10월 24일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 PDF (8.52MB)   |  288 쪽
ISBN 9791124025895
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
소득공제
소장
정가 : 9,900원

쿠폰적용가 8,910

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

"당신의 코딩테스트 풀이 시간을 1/10로 줄여줄 '수학 함수 사전'"

코딩테스트 고수들은 우리와 다른 수학 공식을 외우고 있을까요? 아닙니다. 그들은 단지 "어떤 문제에 어떤 도구(라이브러리)를 써야 하는지" 알 뿐입니다.

이 책은 프로그래머스, 백준 등에서 자주 만나는 실전 문제 29가지 유형을 완벽하게 분석하고, 각 문제를 푸는 데 필요한 파이썬 핵심 라이브러리(itertools, collections, math, heapq, bisect 등)를 1:1로 맵핑해 줍니다.

"N개 중 R개 뽑기" 문제가 보이면 → itertools.combinations

"최단 거리" 문제가 보이면 → heapq (다익스트라)

"개수 세기" 문제가 보이면 → collections.Counter

"정렬된 배열에서 탐색" 문제가 보이면 → bisect_left

마치 문제 유형별로 정리된 '치트키'처럼, 이 책을 통해 당신의 문제 해결 속도는 놀랍게 빨라질 것입니다. 비효율적인 for문과 작별하고, 파이썬다운 효율적인 코드로 합격에 가까워지세요.
프롤로그: 그문제엔 이 함수를 써어야 했다
Part 1: itertools (모든 경우의 수 완전탐색)
Chapter 1. 문제 유형: "N개 중 순서 없이 R개 뽑기" (조합)
1-1. [문제 정의] "서로 다른 N개 중 순서를 고려하지 않고 R개를 뽑는 모든 경우"
1-2. [핵심 함수] itertools.combinations(iterable, r)
1-3. [실전 예제] 프로그래머스: "소수 만들기"
1-4. [풀이 전략] 3개의 숫자를 뽑는 모든 조합을 구해 합을 검사합니다.
Chapter 2. 문제 유형: "N개 중 순서 있게 R개 나열" (순열)
2-1. [문제 정의] "서로 다른 N개 중 R개를 뽑아 순서대로 나열하는 모든 경우"
2-2. [핵심 함수] itertools.permutations(iterable, r)
2-3. [실전 예제] 백준: "N과 M (5)"
2-4. [풀이 전략] N개의 숫자 중 M개를 뽑아 나열하는 모든 순열을 출력합니다.
Chapter 3. 문제 유형: "모든 순서 시도하기" (순열 응용)
3-1. [문제 정의] "주어진 작업들의 순서를 모두 바꿔가며 최적의 해를 찾기"
3-2. [핵심 함수] itertools.permutations(iterable, len(iterable))
3-3. [실전 예제] 프로그래머스: "피로도"
3-4. [풀이 전략] 던전을 탐험하는 모든 순열을 구해, 각 순서마다 최대 탐험 횟수를 갱신합니다.
Chapter 4. 문제 유형: "중복을 허용하여 R개 나열" (중복 순열)
4-1. [문제 정의] "서로 다른 N개 중 중복을 허용하여 R개를 뽑아 나열"
4-2. [핵심 함수] itertools.product(iterable, repeat=r)
4-3. [실전 예제] 백준: "N과 M (3)"
4-4. [풀이 전략] 1~N까지의 수를 repeat=M으로 중복 순열을 만듭니다.
Chapter 5. 문제 유형: "중복을 허용하여 R개 뽑기" (중복 조합)
5-1. [문제 정의] "서로 다른 N개 중 중복을 허용하여 순서 없이 R개를 뽑기"
5-2. [핵심 함수] itertools.combinations_with_replacement(iterable, r)
5-3. [실전 예제] 백준: "N과 M (4)" (비내림차순 수열)
5-4. [풀이 전략] 1~N까지의 수를 중복 조합으로 M개 뽑습니다.

Part 2: collections (자료구조 기반 계산)
Chapter 6. 문제 유형: "요소의 개수 세기" (해시 카운팅)
6-1. [문제 정의] "리스트나 문자열에 각 요소가 몇 개씩 있는지 빠르게 세기"
6-2. [핵심 함수] collections.Counter(iterable)
6-3. [실전 예제] 프로그래머스: "완주하지 못한 선수"
6-4. [풀이 전략] Counter(참가자) - Counter(완주자)로 차집합을 구합니다.
Chapter 7. 문제 유형: "애너그램 (문자열 구성 비교)"
7-1. [문제 정의] "두 문자열이 철자의 순서만 다르고 구성이 같은지 판별"
7-2. [핵심 함수] collections.Counter(str1) == collections.Counter(str2)
7-3. [실전 예제] 백준: "애너그램"
7-4. [풀이 전략] 두 문자열의 Counter 객체가 완전히 동일한지 비교합니다.
Chapter 8. 문제 유형: "최빈값 (가장 많이 나온 값)"
8-1. [문제 정의] "자료에서 가장 빈번하게 등장한 요소를 찾기"
8-2. [핵심 함수] Counter.most_common(k)
8-3. [실전 예제] 백준: "베스트셀러"
8-4. [풀이 전략] most_common(1)로 가장 빈도가 높은 1개를 찾습니다.
Chapter 9. 문제 유형: "최단 거리 탐색 (BFS)"
9-1. [문제 정의] "가중치 없는 그래프(맵)에서 최단 거리를 찾기"
9-2. [핵심 자료구조] collections.deque() (큐로 활용)
9-3. [실전 예제] 프로그래머스: "게임 맵 최단거리"
9-4. [풀이 전략] deque를 큐로 사용하여 BFS를 수행합니다. (Tip: list.pop(0)의 비효율성)
Chapter 10. 문제 유형: "슬라이딩 윈도우"
10-1. [문제 정의] "크기가 K인 창문을 이동시키며 범위 내의 값을 처리"
10-2. [핵심 자료구조] collections.deque() (양쪽에서 삽입/삭제가 빠름)
10-3. [실전 예제] 백준: "최솟값 찾기" (11003번)
10-4. [풀이 전략] deque를 사용해 범위 내의 최솟값 후보를 효율적으로 관리합니다.
Chapter 11. 문제 유형: "스택 (LIFO) 자료구조"
11-1. [문제 정의] "가장 나중에 들어온 데이터를 가장 먼저 처리 (LIFO)"
11-2. [핵심 자료구조] list (.append(), .pop()) 또는 collections.deque()
11-3. [실전 예제] 프로그래머스: "올바른 괄호"
11-4. [풀이 전략] 여는 괄호는 스택에 넣고, 닫는 괄호는 스택에서 빼며 짝을 맞춥니다.

Part 3: math (수치 연산 및 계산)
Chapter 12. 문제 유형: "최대공약수 / 기약분수"
12-1. [문제 정의] "두 수의 공통된 약수 중 가장 큰 값 / 분수를 약분하기"
12-2. [핵심 함수] math.gcd(a, b)
12-3. [실전 예제] 프로그래머스: "분수 덧셈"
12-4. [풀이 전략] 분모/분자를 gcd로 나누어 기약분수를 만듭니다.
Chapter 13. 문제 유형: "최소공배수 (공통 주기)"
13-1. [문제 정의] "두 수의 공통된 배수 중 가장 작은 값 (예: 버스 배차 간격)"
13-2. [핵심 함수] math.lcm(a, b) (3.9+) / (a * b) // math.gcd(a, b) (3.8 이하)
13-3. [실전 예제] 백준: "최소공배수" (1934번)
13-4. [풀이 전략] 코테 환경에 맞춰 lcm 함수를 사용하거나 직접 구현합니다.
Chapter 14. 문제 유형: "소수 판별 (시간 효율화)"
14-1. [문제 정의] "어떤 수 N이 소수인지 아닌지 빠르게 판별"
14-2. [핵심 함수] math.sqrt(n)
14-3. [실전 예제] 프로그래머스: "소수 찾기"
14-4. [풀이 전략] 2부터 int(math.sqrt(n)) + 1까지만 나누어 검사합니다.
Chapter 15. 문제 유형: "좌표 거리 계산 (피타고라스)"
15-1. [문제 정의] "두 점 (x1, y1), (x2, y2) 사이의 직선 거리를 구하기"
15-2. [핵심 함수] math.sqrt(), math.pow(n, 2) (또는 ** 2)
15-3. [실전 예제] 백준: "터렛" (1002번)
15-4. [풀이 전략] sqrt((x2-x1)² + (y2-y1)²) 공식을 구현합니다.
Chapter 16. 문제 유형: "올림 계산 (요금, 일수)"
16-1. [문제 정의] "2.1일 → 3일, 11분 → 20분 요금처럼 무조건 올림 처리"
16-2. [핵심 함수] math.ceil(n)
16-3. [실전 예제] 프로그래머스: "기능개발", "주차 요금 계산"
16-4. [풀이 전략] (총량 / 단위)의 결과를 ceil 처리합니다.
Chapter 17. 문제 유형: "내림 / 버림 계산"
17-1. [문제 정의] "소수점 이하를 무조건 버리기"
17-2. [핵심 함수] math.floor(n) (음수 주의) / int(n) (0을 향해 버림)
17-3. [실전 예제] "N개로 만들 수 있는 최대 묶음 수"
17-4. [풀이 전략] int(총량 / 단위)로 몫만 취합니다.
Chapter 18. 문제 유형: "팩토리얼 (N!) 계산"
18-1. [문제 정의] "N부터 1까지 모두 곱한 값(N!)을 구하기 (경우의 수)"
18-2. [핵심 함수] math.factorial(n)
18-3. [실전 예제] 프로그래머스: "줄 서는 방법" (K번째 순열 유추)
18-4. [풀이 전략] (N-1)!을 기준으로 K번째 순서의 첫 번째 숫자를 찾습니다.

Part 4: heapq (우선순위 큐)
Chapter 19. 문제 유형: "최소 힙 (가장 작은 값)"
19-1. [문제 정의] "데이터를 넣을 때마다 항상 가장 작은 값을 빠르게 추출"
19-2. [핵심 함수] heapq.heappush(heap, item), heapq.heappop(heap)
19-3. [실전 예제] 프로그래머스: "더 맵게"
19-4. [풀이 전략] 모든 스코빌 지수를 힙에 넣고, 가장 작은 2개를 뽑아 연산 후 다시 힙에 넣습니다.
Chapter 20. 문제 유형: "최대 힙 (가장 큰 값)"
20-1. [문제 정의] "데이터를 넣을 때마다 항상 가장 큰 값을 빠르게 추출"
20-2. [핵심 전략] "음수 트릭": heapq.heappush(heap, -item)
20-3. [실전 예제] 백준: "최대 힙" (11279번)
20-4. [풀이 전략] 힙에 값을 넣을 때 음수로, 뺄 때 다시 음수로 바꿔 최대 힙을 구현합니다.
Chapter 21. 문제 유형: "절댓값 힙"
21-1. [문제 정의] "절댓값이 가장 작은 값을, 같다면 원래 값이 작은 값을 추출"
21-2. [핵심 전략] "튜플 저장": heapq.heappush(heap, (abs(x), x))
21-3. [실전 예제] 백준: "절댓값 힙" (11286번)
21-4. [풀이 전략] 튜플의 첫 번째 요소(절댓값)를 기준으로 자동 정렬되는 힙의 원리를 이용합니다.
Chapter 22. 문제 유형: "다익스트라 (최소 비용 경로)"
22-1. [문제 정의] "가중치가 있는 그래프에서 한 노드에서 다른 노드로 가는 최소 비용"
22-2. [핵심 자료구조] heapq (우선순위 큐 활용)
22-3. [실전 예제] 백준: "최단경로" (1753번)
22-4. [풀이 전략] (비용, 노드) 튜플을 힙에 넣어, 항상 비용이 가장 적은 노드를 먼저 탐색합니다.

Part 5: bisect (이진 탐색 라이브러리)
Chapter 23. 문제 유형: "정렬된 리스트에서 값의 개수 세기"
23-1. [문제 정의] "정렬된 리스트에서 특정 값 x가 몇 개 있는지 O(logN)으로 찾기"
23-2. [핵심 함수] bisect_left(list, x), bisect_right(list, x)
23-3. [실전 예제] 프로그래머스: "정렬된 배열에서 특정 수의 개수 구하기"
23-4. [풀이 전략] bisect_right(x) - bisect_left(x)로 개수를 셉니다.
Chapter 24. 문제 유형: "정렬된 리스트에 값 삽입"
24-1. [문제 정의] "정렬을 유지하면서 리스트에 새 값을 삽입할 위치를 찾기"
24-2. [핵심 함수] bisect.insort(list, x)
24-3. [실전 예제] "정렬된 리스트 유지하기"
24-4. [풀이 전략] insort를 사용해 O(N)이지만 O(logN)으로 위치를 찾아 삽입합니다.

Part 6: 내장 함수 (기본 수학 도구)
Chapter 25. 문제 유형: "N진법 → 10진법 변환"
25-1. [문제 정의] "2진수, 3진수, 16진수 등의 '문자열'을 10진수 '숫자'로"
25-2. [핵심 함수] int(string, base)
25-3. [실전 예제] 프로그래머스: "3진법 뒤집기"
25-4. [풀이 전략] 3진법으로 바꾼 문자열을 뒤집고 int(reversed_str, 3)을 호출합니다.
Chapter 26. 문제 유형: "10진법 → N진법 변환"
26-1. [문제 정의] "10진수 '숫자'를 2, 8, 16진수 '문자열'로"
26-2. [핵심 함수] bin(n), oct(n), hex(n) (접두어 [2:] 제거 팁)
26-3. [실전 예제] "이진 변환 반복하기"
26-4. [풀이 전략] bin(n)[2:]로 2진수 문자열을 얻습니다. (Tip: N진법 변환은 직접 구현)
Chapter 27. 문제 유형: "비트마스킹 (Bitmasking)"
27-1. [문제 정의] "정수의 비트 연산(AND, OR, XOR...)으로 집합을 표현"
27-2. [핵심 함수] bin(), &, |, ^, <<, >>
27-3. [실전 예제] "집합" (백준 11723번)
27-4. [풀이 전략] 비트 연산으로 원소 추가/삭제/확인을 O(1)에 처리합니다.
Chapter 28. 문제 유형: "모듈러 거듭제곱 (큰 수의 나머지)"
28-1. [문제 정의] "(A의 B제곱)을 C로 나눈 나머지를 시간 초과 없이 구하기"
28-2. [핵심 함수] pow(A, B, C)
28-3. [실전 예제] 백준: "곱셈" (1629번)
28-4. [풀이 전략] (A ** B) % C 대신 pow(A, B, C)를 사용해 O(logB)로 계산합니다.
Chapter 29. 문제 유형: "반올림 (Round의 함정)"
29-1. [문제 정의] "소수점을 반올림해야 하는데 round()가 이상하게 동작"
29-2. [핵심 함수] round(n) (오사오입: Round-to-nearest-even)
29-3. [실전 예제] "평균값 반올림하기"
29-4. [풀이 전략] round(2.5)는 2, round(3.5)는 4가 됨을 인지하고, 필요시 int(n + 0.5) 트릭을 사용합니다.
에필로그: 이제, 여러분의 코드로 세상을 풀어낼 시간입니다.

인물정보

저자(글) 김아인

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    코딩테스트에 필요한 파이썬 수학 라이브러리 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    코딩테스트에 필요한 파이썬 수학 라이브러리 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    코딩테스트에 필요한 파이썬 수학 라이브러리
    당신의 코딩테스트 풀이 시간을 1/10로 줄여줄 ‘수학 함수 사전‘
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)