전체 글 280

항해99 리부트코스 알고리즘 2주 2일차 백준 1927 최소 힙

https://www.acmicpc.net/problem/1927    import sys import heapq input = sys.stdin.readlinedef main(): n = int(input().strip()) min_heap = [] # 빈 리스트를 최소 힙으로 사용 for _ in range(n): x = int(input().strip()) # 각 명령을 입력받음 if x == 0: if min_heap: # 힙이 비어있지 않으면 최소 값을 출력하고 힙에서 제거 print(heapq.heappop(min_heap)) else: ..

Algorithm/백준 2024.07.25

항해99 리부트코스 알고리즘 2주 2일차 백준 19638 센티와 마법의 뿅망치

https://www.acmicpc.net/problem/19638    풀이  주어진 거인의 키들을 최대 힙(max heap)으로 관리최대 힙을 사용하여 가장 큰 거인을 찾아 뿅망치로 줄임이를 T번 반복하거나, 모든 거인의 키가 H이하가 되면 중지 import heapqimport sysinput = sys.stdin.readlinedef solve(n, h, t, giants): # 거인들의 키를 최대 힙으로 변환 (음수로 저장하여 최대 힙처럼 동작하게 함) max_heap = [-giant for giant in giants] heapq.heapify(max_heap) count = 0 # 뿅망치 사용 횟수 카운트 for _ in range(t): # 최대 T번..

Algorithm/백준 2024.07.25

항해99 리부트코스 알고리즘 2주 1일차 백준 1406 에디터

https://www.acmicpc.net/problem/1406 import sysinput = sys.stdin.read# 초기 문자열과 명령어 입력 받기data = input().splitlines()initial_string = data[0]commands = data[1:]# 왼쪽 스택과 오른쪽 스택 사용left_stack = list(initial_string) # 초기 문자열을 왼쪽 스택에 넣음right_stack = []# 명령어 처리for command in commands: if command.startswith('L'): if left_stack: right_stack.append(left_stack.pop()) # 왼쪽 스택에서 오른쪽 스택으..

Algorithm/백준 2024.07.25

Heap, Hash Table

힙(heap)과 해시 테이블(hash)의 개념을 이해하고, 파이썬에서 자료구조를 구현각 자료구조의 특성을 파악하고, 실제 문제 해결에 활용자료구조를 활용한 알고리즘 문제를 해결 01. 힙 (Heap), 우선순위 큐(Priority Queue)- 힙은 완전 이진 트리의 일종으로, 우선순위 큐를 구현하기 위해 사용되는 자료구조 힙(heap)은 특정 규칙을 갖는 완전 이진 트리최대 힙: 부모 노드가 자식 노드보다 항상 크거나 같음최소 힙: 부모 노드가 자식 노드보다 항상 작거나 같음이진 트리각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조완전 이진트리: 말단 노드를 제외하고 모든 노드가 2개의 자식을 갖고 있는 이진트리   힙의 특성힙은 각 노드가 하위 노드보다 큰(또는 작은) 우선순위를 가집니다.최대 ..

스택, 큐, 데크

스택(Stack) 자료구조를 이해하고 활용한다큐(Queue) 자료구조를 이해하고 활용한다데크(Deque) 자료구조를 이해하고 활용한다 1. 스택(Stack) - 입/출력이 한쪽 끝단에서 모두 발생하며, 후입선출 특징을 갖는 자료구조 후입선출(LIFO: Last In First Out) 특성을 가지는 자료구조스택의 기본 연산push: 스택의 맨 위에 새로운 요소를 추가pop: 스택의 맨 위에 있는 요소를 제거하고 반환peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환isEmpty: 스택이 비어 있는지 확인 활용 예시실행취소(Undo) 기능웹 브라우저의 뒤로가기함수 호출 스택 스택 코드 예시 Java utill.Stack 라이브러리 활용import java.util.Stack;public class ..