튜플 - 다익스트라 최단경로 알골때 우선순위 큐 이용하는데, 우선순위 큐에 들어가는 데이터를 튜플로 구성
, 그래프 알고리즘 구현할때 자주 사용

리스트 - C++의 STL vector와 유사함.

 빈리스트 선언 : arr = list() 혹은 arr=[] (arr는 변수명이라 가정)
 인덱싱, 슬라이싱
 ★컴프리헨션 : 리스트 초기화방법  array = [i for i in range(20) if i%2==1]
    특히 2차원 배열 초기화할때 유용함
     arr = [[0]*m for _ in range(n)]


★★ 특정 크기의 2차원 리스트 초기화시엔 반드시 리스트 컴프리헨션 이용해야함

 

기타메서드

메서드 시간복잡도
append() O(1)
sort() O(nlogn)
reverse() O(N)
insert() O(N)
count() O(N)
remove() O(N)


insert()함수를 사용하면 시간복잡도는 O(N), append()함수가 O(1)에 수행되는데에 반해 너무 느리다
★insert함수 남발하면 시간초과 날수있음
remove()또한 삭제후 리스트의 원소위치를 조정해야하므로 O(N)만큼 소요


★ 전형적이 코테 문제풀때 input()이용하지만,
input개수가 많은 경우에는 동작속도가 느려서 시간초과 날 수 있기때문에
==> sys 라이브러리 이용.

 

sys.stdin.readline().rstrip()


파이썬에서 지원하는 표준라이브러리

내장함수 기본 입출력기능(input(), print()) , sorted()기능 등 제공 라이브러리
itertools  iterate한 데이터 처리할때 쓸 라이브러리. 순열과 조합 라이브러리 제공
heapq 힙기능 제공하는 라이브러리, 우선순위 큐 기능 구현위해 사용할거임
bisect 이진탐색 기능 제공하는 라이브러리
collections 덱,카운터 등의 자료구조 포함

 

내장함수

sorted()함수는 iterable한 객체 들어왔을때, 정렬된 결과 반환

key속성으로 reverse를 활용해 정렬된 리스트 뒤집을지 여부 결정할 수 있음

 

sorted([8,2,4], reverse=True)        #내림차순 정렬

 

itertools

가장 유용하게 쓸만한 클래스는 permutations, combinations

 

- permutations

리스트같은 iterable한 객체에서 r개의 데이터 뽑아 일렬로 나열하는 모든경우 즉, 순열에 사용

 

- combinations

순서고려하지 않고 나열하는 모든 경우(조합)

from itertools import permutations

arr = ['A','B','C']
answer = list(permutations(data,3)) #모든 순열 구하기

print(result)

 

 


- 보통 파이썬에서는 deque 사용해 큐 구현

 

 

 

 

+ Recent posts