자료구조 5

우선순위 큐와 힙

우선순위 큐 데이터 요소들이 우선순위를 기준으로 정렬되어 처리되는 큐 FIFO(First In, First Out) 방식인 일반 큐와 달리 가장 높은 우선순위를 가진 요소가 먼저 처리된다. 특징각 요소는 값과 우선순위를 가진다. 삽입은 어느 위치든 가능하지만, 삭제는 항상 우선순위가 가장 높은 요소부터 이루어진다. 사용 예시 작업 스케줄링: CPU 스케줄링에서 높은 우선순위의 작업을 먼저 실행한다. 네트워크 라우팅: 트래픽 처리에서 긴급한 패킷을 우선 처리한다.힙 완전 이진 트리 형태의 자료구조로, 우선순위 큐를 효율적으로 구현하기 위해 사용한다. 힙은 두 가지 유형으로 나누어진다. 최대 힙: 부모 노드의 값이 항상 자식 노드의 값보다 크거나 같음 최소 힙: 부모 노드의 값이 항상 자식 노드의 값보다 작..

[백준] 9012번 - 괄호 (By Python)

풀이 과정 모든 괄호 문자열이 입력되었을 때, '(' 문자열과 ')' 문자열의 개수가 일치하면 됩니다. 따라서, 빈 리스트를 만들어 '(' 문자열이 입력되었을 경우 리스트에 괄호를 삽입하고, ')' 문자열이 입력되었을 경우 리스트에 미리 삽입된 '(' 괄호를 제거함으로써 균형을 맞춥니다. 만약 리스트가 비어있는 상태에서 ')' 괄호열이 입력될 경우 NO 문자열을 출력하며 반복문을 종료하며, 모든 입력이 완료되었을 때 리스트에 원소가 없으면 YES 문자열을 출력합니다. 풀이 def solution(): stack=[] words = input() for word in words: if word=='(': stack.append(word) elif word==')': if stack: stack.pop() ..

[백준] 10828번 - 스택 (By Python)

풀이 import sys N=int(sys.stdin.readline()) list=[] # 빈 리스트를 생성한다. for i in range(N): # N의 숫자만큼 word=sys.stdin.readline().split() # 문장을 읽어온다. if word[0]=='push': list.append(word[1]) elif word[0]== 'pop': if len(list)==0: print(-1) else: print(list.pop()) elif word[0]=='size': print(len(list)) elif word[0]=='empty': if len(list)==0: print(1) else: print(0) elif word[0]=='top': if len(list)==0: pri..