728x90

deque 3

파이썬 자료형 시간 복잡도

리스트(동적 배열) 연산 예시 시간 복잡도 접근 list[0], list[1] = 5 O(1) 추가 list.append(2) O(1) - 분할 상환 맨 뒤 삭제 list.pop() O(1) - 분할 상환 길이 확인 len(list) O(1) 삽입 list.insert(3, "가") O(n) 삭제 del list[0] O(n) 탐색 "111" in list O(n) * 분할 상환 : 연산을 n 번 했을 때 총시간을 n으로 나눠주는 할부의 개념 deque(더블리 링크드 리스트) 연산 예시 시간 복잡도 맨 앞 삭제 deque1.popleft() O(1) 맨 앞 삽입 deque1.appendleft("가") O(1) 맨 뒤 삭제 deque1.pop() O(1) 맨 뒤 삽입 dequq1.append("가") O..

자료구조 2023.08.13

큐(Queue)

정의 - 데이터 간 순서를 약속하는 추상 자료형 - 데이터를 삭제할 때는 가장 앞에서만 삭제, 삽입할 때는 가장 뒤에서만 삽입한다.(FIFO) - 가장 먼저 들어온 데이터가 가장 먼저 삭제된다. 연산 - 맨 뒤 데이터 추가 - 맨 앞 데이터 삭제 - 맨 앞 데이터 접근 #deque(Doubly-ended-queue) from collections import deque queue = deque() # 큐의 맨 끝에 데이터 삽입 queue.append("가") queue.append("나") queue.append("다") queue.append("라") queue.append("마") # 큐의 맨 앞에 데이터 접근 print(queue[0]) # 큐 맨 앞 데이터 삭제 후 값을 리턴한다. print(qu..

자료구조 2023.08.13

문자열 밀기

문제 설명 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0

728x90