문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 이해이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조I 숫자 : 큐에 주어진 숫자 삽입D 1 : 큐에서 최댓값 삭제D -1 : 큐에서 최솟값 삭제연산 operations을 처리한 뒤 큐가 비어있으면 [0, 0], 비어있지 않으면 [최댓값, 최솟값] 반환빈 큐에 데이터를 삭제하라는 연산일 경우 해당 연산 무시풀이 (1)operations의 입력에 맞게 조건문을 작성하여 index, max, min, pop 메서드를 활용하여 해결시간 복잡도가 O(n)인 메소드들을 마구잡이로 섞어서 시간 초과가 나올 것이..
힙(Heap) 대표 문제 풀이 : 더 맵게 힙(Heap) 최대/최소 원소를 O(1) 시간으로 빠르게 찾을 수 있음 종류 : 최대 힙(max heap), 최소 힙(min heap) 연산 : 힙 구성(heapify, O(n log n)), 삽입(insert, O(log n)), 삭제(remove, O(log n)) 힙의 구현과 응용 최대 힙을 기준으로 root node에 최댓값이 위치 완전 이진트리로 구성돼 있으며, 배열을 이용해서 구현 가능 응용 : 정렬(Heapsort), 우선순위 큐 (priority queue) Python에서의 힙 적용 연산 : heapify(list), heappop(list), heappush(list, value) import heapq # 리스트 L로부터 min heap 구성..
큐(Queue) 자료를 보관할 수 있는 선형 구조 선입선출(FIFO) 구조로 enqueue 연산과 dequeue 연산 존재 size, isEmpty, enqueue는 스택의 메소드와 같고, dequeue와 peek만 다름 배열을 이용하여 구현 Python 리스트와 메서드 이용 class Queue: def __init__(self): self.data = [] # 큐의 원소의 수 def size(self): return len(self.data) # 큐가 비어 있는지 판단 def isEmpty(self): return self.size() == 0 # 데이터 원소 추가 def enqueue(self, item): self.data.append(item) # 가장 앞 데이터 원소 제거/반환 def dequ..
연결 리스트(Linked Lists) (1) 추상적 자료구조(Abstract Data Structures) 내부 구현은 숨겨져 있는 상태로 사용하는 자료구조 데이터 : 정수, 문자열, 레코드 등 연산 : 삽입, 삭제, 순회, 정렬, 탐색 등 기본적 연결리스트 앞에 있는 노드가 뒤에 있는 노드를 가리키도록 되어있는 자료구조 형태 노드 : Data(문자열, 레코드, 또 다른 연결 리스트 등), Link (next)가 담김 Head : 연결 리스트의 가장 앞의 노드를 가리키는 포인터 Tail : 연결 리스트의 가장 마지막 노드를 가리키는 포인터 자료구조 정의 노드 클래스 class Node: def __init__(self, item): self.data = item self.next = None 연결리스트 ..