본문 바로가기

Python2

파이썬 heapq.heapreplace 동작 원리 파이썬 heapq.heapreplace 동작 원리heapreplace는 파이썬의 heapq 모듈에서 제공하는 유용한 함수로, 힙의 최솟값을 제거하고 새로운 값을 넣은 뒤, 힙을 재정렬하여 항상 최소 힙(min heap)의 조건을 유지하는 함수다.📌 기본 개념heapreplace(heap, item)은 다음과 같은 동작을 한다:힙의 루트(가장 작은 값)를 제거한다.새로운 값을 루트 자리에 넣는다.힙 조건(부모 📊 힙 구조 시각화 예제다음은 heap = [1, 3, 5, 7, 9, 11]일 때 heapreplace(heap, 2)가 어떻게 작동하는지 단계별로 나타낸 것이다.1️⃣ 초기 힙 구조 1 / \ 3 5 / \ \ 7 9 11 2️⃣ 루.. 2025. 4. 12.
🐨BOJ#1697 숨바꼭질]🙄BFS(feat. collections) 문제 보기 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 아이디어 딱 봐도 dp로 풀 수 있을 것 같지만... 머리가 아파서(=어려워서) 수빈이가 도착할 수 있는 위치가 분기로 갈라지는 트리를 만들어서 풀기로 했다. 가장 적은 횟수(빠른 시간)에 동생을 찾아야 하기 때문에, 트리의 깊이가 가장 얕은 게 정답이다. 그래서 dfs로 탐색한 뒤 깊이를 비교하는 것 보다 bfs를 사용해야 한다고 생각했다. 그리고 분기.. 2024. 3. 29.