300x250

목차

     

     

     

     

    0. 빠르게 입력 받기

     

    알고리즘 문제나 코딩 테스트에서 어떤 값을 입력받은 후, 문제 조건에 맞는 값을 출력하라는 문제를 해결할 때가 많다. 이때 기존에 입력을 위해 사용하던 함수인 input() 대신 조금이라도 더 빠른 함수를 사용할 수 있다.

     

    그것은 바로 'sys'(system) 라이브러리에 포함된 stdin.readline()!

    이 함수를 호출할 시 한 줄 씩 문자열로 읽어오는데, 주의할 점은 줄바꿈(\n)까지 포함된다는 점이다!

    줄바꿈을 포함시키지 않으려면 stdin.readline().rstrip() 함수를 사용한다.

     

    import sys
    
    a = sys.stdin.readline()
    b = sys.stdin.readline().rstrip()
    print(a)
    print(a)
    print(b)
    print(b)

     

    → 결과 :

     

    여러 상황에 따른 상세한 사용 방법은 다음과 같다.

     

     

     

    1) 한 개 정수 입력받기

     

    import sys
    a = int(sys.stdin.readline())

     

    이때 변수 타입이 문자열 형태이므로 정수로 사용하기 위해 형변환을 해주어야 한다.

     

     

     

     

    2) 정해진 개수의 정수를 한줄에 입력받을 때

     

    import sys
    a, b, c = map(int, sys.stdin.readline().split())

     

    map()은 반복 가능한 객체(여기서 리스트)에 대해 각 요소들을 지정된 함수로 처리하는 함수이다. 즉 위 예시에서 split()으로 부여한 옵션에 따라 한 줄의 string을 분할한 후에 그것을 int형으로 변환한 후 a, b, c에 mapping해준다고 보면 된다.

     

    split()의 default 값은 공백(스페이스, 탭, 엔터 등)이다.

     

     

     

     

    3) 임의의 개수의 정수를 한줄에 입력받아 리스트에 저장할 때

     

    import sys
    data = list(map(int, sys.stdin.readline().split()))

     

    map()은 맵 객체를 만들기 때문에, 리스트형으로 바꾸기 위해 list()함수를 사용한다.

     

     

     

     

     

     

    1. 내장 함수

     

    기본 입출력 함수, 정렬 함수 등

    → 파이썬으로 프로그램을 작성할 때 없어서는 안될 필수적인 기능들을 포함

     

    • sum() : 합 반환
    • min(), max() : 최소값, 최대값 반환
    • eval() : 사칙연산 계산 결과를 수로 반환
    • sorted() : 오름차순(default), 내림차순(reverse=True)으로 정렬
      • key, lambda함수 등과 함께 사용하여 효율적으로 정렬 가능

     

     

     

     

    2. itertools

     

    파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능 제공

    → 특히, 순열과 조합 라이브러리는 코딩 테스트에서 매우 자주 사용함

     

    • 순열(Permutation) : 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것 (자리만 달라도 다른 결과임)
    • 조합(Combination) : 서로 다른 n개에서 순서 상관 없이 서로 다른 r개를 선택하는 것

    순열, 조합의 수식
    순열 실습

    조합 실습

     

    • 중복 순열
    from itertools import product
    • 중복 조합
    from itertools import combinations_with_replacement

     

     

     

    3. heapq

     

    힙(Heap) 자료구조  제공

    → 일반적으로 우선순위 큐 기능을 구현하기 위해 사용됨

     

     

     

     

     

    4. bisect

     

    이진 탐색 (Binary Search) 기능을 구현하기 위해 사용

     

     

     

     

     

    5. collections

     

    덱(deque), 카운터(Counter) 등의 유용한 자료구조를 포함함

     

    • Counter : 리스트 등의 반복 가능한(iterable) 객체가 주어졌을 때 등장 횟수를 세는 기능 제공

     

     

     

     

    6. math

     

    필수적인 수학적 기능들 제공

    → 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련 함수

    → 파이(pi) 등의 상수

     

     

     

     

     

     

     

     

     

     

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기