알고리즘/학습 내용 15

[파이썬] collections 모듈(deque, Counter)

collections 모듈은 파이썬의 내장 모듈인데, 다양한 자료구조인 list, tuple, dictionary 등을 확장하여 제작된 모듈이다. 기본적으로 collections 모듈은 deque, Counter, namedtuple, defaultdict, OrderedDict 등을 제공한다. deque는 연속적으로 나열된 데이터의 시작 부분이나 끝 부분에 데이터를 삽입하거나 삭제할 수 있다. 또한, deque는 stack이나 queue 자료구조의 대용으로 사용될 수 있다. 아래의 표는 deque를 통해 원소를 삽입하거나 삭제하는 메서드이다. 메서드 설명 시간 복잡도 appendleft(a) 원소 a를 첫 번째 인덱스에 삽입 O(1) append(a) 원소 a를 마지막 인덱스에 삽입 O(1) pople..

[파이썬] heapq

heapq 라이브러리는 힙(Heap) 기능을 다룰 수 있도록 해준다. 파이썬에서의 힙은 최소 힙(Min Heap)으로 구성되어 있으며, 원소를 Heap에 모두 삽입했다가 빼는 것만으로도 시간 복잡도 O(NlogN)에 정렬을 수행할 수 있다. 기본적으로 Heap에 원소를 삽입할 때 사용하는 메서드는 heapq.heappush( ) 이고 Heap에서 원소를 빼낼 때 사용하는 메서드는 heapq.heappop( ) 이다. 아래는 heapq를 통해 원소들을 오름차순으로 정렬한 예제이다. [오름차순 예제] import heapq def heapsort(i): number = [] result = [] for value in i: heapq.heappush(number, value) for i in range(le..

[파이썬] 리스트 기본 메서드

리스트에서 사용할 수 있는 기본적인 메서드들은 다음과 같다. 메서드 사용 방식 설명 시간 복잡도 append( ) 변수명.append( ) 리스트에 원소를 하나 삽입한다. O(1) sort( ) 변수명.sort( ) 오름차순으로 정렬 O(NlogN) 변수명.sort(reverse = True) 내림차순으로 정렬 reverse( ) 변수명.reverse( ) 리스트의 원소 순서를 뒤집는다. O(N) remove( ) 변수명.remove(특정 값) 특정 값을 갖는 원소를 제거한다. O(N) insert( ) 변수명.insert(삽입할 위치 인덱스, 삽입할 값) 특정한 인덱스에 원소를 삽입한다. O(N) count( ) 변수명.count(특정 값) 리스트에서 특정 값을 가지는 데이터의 개수 O(N) 여기서 r..

[파이썬] round( ) 함수

컴퓨터 시스템은 수 데이터를 처리할 때 2진수를 사용하고, 부동 소수점 방식을 이용하여 실수를 처리한다. 하지만, 실수형을 저장하기 위해 4byte나 8byte의 고정된 크기의 메모리를 할당하기 때문에 대개 실수 정보를 표현하는 정확도에 한계를 가진다. 예를 들어, 0.7 + 0.2의 결과값은 0.9이지만, 컴퓨터 시스템 내에서 수행해보면 0.8999999999999999 의 값이 나온다. 이러한 문제를 해결하기 위해 round( ) 함수를 사용할 수 있다. round( ) 함수 사용법 >> round(실수형 데이터, 반올림하고자 하는 위치 -1 ) [예제] a = 0.7 + 0.2 print(a) print(round(a, 4)) [결과]