반응형

Python 16

[파이썬 라이브러리] Numpy

Numpy Numerical Python의 약자로 숫자로 이루어진 배열을 다루기 위한 파이썬의 라이브러리 파이썬의 list에 비해 규모가 큰 다차원 배열의 저장 및 처리에 훨씬 효율적 pandas 등 다양한 데이터 처리 라이브러리에서 사용됨 Numpy array의 생성 # numpy 사용하기 import numpy as np # numpy를 이용하여 array 정의하기 arr = [1, 2, 3, 4, 5] n_arr = np.array(arr) print(n_arr) # [1 2 3 4 5] Numpy array의 특징 Numpy 배열은 생성 이후 크기를 변경할 수 없음 => 변경이 있을 시 새로 생성해야 함 list보다 메모리 공간을 덜 차지함 Numpy 배열의 모든 요소는 같은 타입이어야 함 - 타..

[파이썬 라이브러리] bisect

파이썬에서는 이진 탐색을 쉽게 구현할 수 있도록 bisect 라이브러리를 제공한다. bisect 라이브러리는 정렬된 배열에서 특정한 원소를 찾아야 할 때 매우 효과적으로 사용된다. bisect 라이브러리에서는 bisect_left() 함수와 bisect_right() 함수가 가장 중요하게 사용되며, 이 두 함수는 모두 시간 복잡도 O(logN)에 동작한다. bisect_left(array, x): 정렬된 순서를 유지하면서 리스트 array에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는다. bisect_right(array, x): 정렬된 순서를 유지하면서 리스트 array에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는다. 예를 들어 정렬된 리스트 [1, 2, 5, 5, 7]이 있고 새롭게 5를 삽입하려..

[파이썬 라이브러리] collections

파이썬의 collections 라이브러리는 유용한 자료구조를 제공하는 표준 라이브러리이다. collections 라이브러리의 기능 중에서 코딩 테스트에서 유용하게 사용되는 클래스인 deque와 Counter를 정리해보자. deque 파이썬에서는 deque를 사용해 큐를 구현한다. 별도로 제공되는 Queue 라이브러리가 있지만 일반적인 큐 자료구조를 구현하는 라이브러리가 아니기 때문에 주로 deque를 이용해 큐를 구현한다. 리스트 자료형과 deque를 비교하면 다음과 같다. 리스트 deque 가장 앞쪽에 원소 추가 O(N) O(1) 가장 뒤쪽에 원소 추가 O(1) O(1) 가장 앞쪽 원소 제거 O(N) O(1) 가장 뒤쪽 원소 제거 O(1) O(1) 리스트 자료형은 원소를 추가 또는 제거할 때 각각 ap..

[자료구조] 우선순위 큐(Priority Queue), 힙(Heap)

우선순위 큐(Priority Queue) 우선순위 큐는 우선순위가 가장 높은 데이터를 먼저 삭제하는 자료구조이다. 데이터를 자료구조에 넣었다가 우선순위가 높은 순서로 처리하고 싶을 때 사용한다. 우선순위 큐는 리스트로 구현하거나 힙(Heap) 자료구조를 이용하여 구현할 수 있다. 먼저 힙을 통해 구현하는 방법을 알기 위해 힙 자료구조에 대해서 알아보자. 힙(Heap) - 힙이란 완전 이진 트리의 일종으로, 부모 노드의 값이 항상 자식 노드들의 값보다 크거나, 작아야 한다. - 루트 노드가 가장 큰 값을 가지면 최대 힙(Max Heap), 루트 노드가 가장 작은 값을 가지면 최소 힙(Min Heap)이라고 한다. - 힙에서는 항상 루트 노드를 제거한다. 힙 구성 함수 heapify() 힙에 원소가 들어오거..

Python/자료구조 2022.01.26

[자료구조] 스택(Stack)과 큐(Queue) 파이썬으로 구현하기

스택(Stack)과 큐(Queue)는 데이터를 임시 저장하기 위해 사용하는 자료구조이며, 데이터를 입력하고 출력하는 방향이 정해져 있다는 점이 서로 비슷하다. 스택(Stack) 스택은 선입후출(FILO) 방식을 따르는 자료구조이다. 선입후출(FILO)은 First In , Last Out 말그대로 먼저 들어온 데이터가 나중에 나가는 방식인데 박스 쌓기에 비유할 수 있다. 흔히 박스는 아래에서부터 위로 차곡차곡 쌓고 박스를 치울 때는 위에 있는 박스부터 내리는 것과 같다. 파이썬에서 스택을 이용할 때는 별도의 라이브러리를 사용할 필요가 없이 리스트 자료형을 사용하여 스택을 구현한다. append() 메소드는 리스트의 가장 뒤쪽에 데이터를 삽입하고, pop() 메소드는 리스트의 가장 뒤쪽에서 데이터를 꺼내기..

Python/자료구조 2022.01.10

[파이썬 문법] 문자열 보충(슬라이싱, 문자열 함수)

문자열 연산(더하기, 곱하기) '+'를 통해 문자열끼리 연결할 수 있으며 '문자열 * 정수'를 통해 해당 문자열을 반복할 수 있다. 이는 [파이썬 문법] 그 외 다양한 자료형(문자열, 튜플, 사전, 집합)에서 다루었다. 문자열 슬라이싱 문자열도 리스트와 같이 인덱싱과 슬라이싱을 할 수 있다. a[start:end:step] start: 슬라이싱을 시작할 인덱스 end: 슬라이싱을 끝낼 인덱스(end 포함 x) step: 몇 개씩 끊어서 가져올지와 슬라이싱 방향을 결정 start, end, step 모두 양수와 음수를 가질 수 있다. ※ start 속성 활용 a = ['a', 'b', 'c', 'd', 'e'] print(a[1:]) # 1번 인덱스부터 끝까지 print(a[-3:]) # -3번 인덱스부터..

[파이썬 문법] 입출력 보충(2차원 배열, sys.stdin.readline)

input() 대신에 sys.stdin.readline()을 사용하는 이유? [파이썬 문법] - [파이썬 문법] 입출력 에서 언급한대로 입력해야할 데이터가 매우 많은 경우 입력을 받는 것만으로도 시간 초과를 받을 수 있다. 예를 들어 반복문으로 여러줄을 입력 받아야하는 문제의 경우 input()을 사용하면 시간 초과를 받을 수 있다. ※ 한 줄의 문자열 입력받기 import sys data = sys.stdin.readline().rstrip() print(data) rstrip()는 문자열의 맨 오른쪽의 개행문자(공백)를 삭제해주는 함수이다. ※ 여러 줄의 문자열 리스트에 입력받기 import sys n = int(sys.stdin.readline()) # 입력받을 문자열 수 data = [sys.st..

[파이썬 라이브러리] math

math 라이브러리는 자주 사용되는 수학적인 기능을 포함하고 있는 라이브러리이다. factorial() 함수 factorial(x) 함수는 x! 값을 반환한다. import math print(math.factorial(5)) sqrt() 함수 sqrt(x) 함수는 x의 제곱근을 반환한다. import math print(math.sqrt(7)) gcd() 함수 gcd(a, b) 함수는 a와 b의 최대 공약수를 출력한다. import math print(math.gcd(21,14)) ※ 수학 공식에서 자주 등장하는 상수가 필요할 때도 math 라이브러리를 사용할 수 있다. ex) 파이(pi), 자연상수 e 참고자료: 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 지음(한빛미디어)

[파이썬 라이브러리] itertools

itertools는 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하고 있는 라이브러리이다. 제공하는 클래스는 매우 다양하지만 코딩 테스트에서 유용하게 사용할 수 있는 클래스들을 정리해 볼 것이다. permutations permutations는 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산해준다. permutations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 리스트 ['A', 'B', 'C']에서 3개를 뽑아 나열하는 모든 경우를 출력하는 예시는 다음과 같다. from itertools import permutations data = ['A', 'B', 'C'] result = list(permutations(d..

[파이썬 라이브러리] 내장 함수

파이썬에는 별도의 import 명령어 없이 바로 사용할 수 있는 내장 함수가 존재한다. 대표적인 내장 함수는 input()과 print() 인데 이미 '[파이썬 문법] 입출력' 포스트에서 언급했기 때문에 이를 제외한 함수를 정리해 볼 것이다. sum() 함수 sum() 함수는 리스트와 같은 iterable 객체가 입력으로 주어졌을 때, 모든 원소의 합을 반환한다. result = sum([1,2,3,4,5]) print(result) min() 함수, max() 함수 min() 함수는 파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다. result = min(7,5,6,2) print(result) max() 함수는 파라미터가 2개 이상 들어왔을 때 가장 큰 값을 반환한다. result = ma..

반응형