본문 바로가기

Algorithm19

[Java/Python]힙과 힙 정렬 간단 정리(feat. 구현) 개인적으로 자료구조 힙을 좋아하는 편이다. 힙을 배우면서 자료구조나 알고리즘에 흥미가 많이 커졌었다.여하간 좋아한다면 구현쯤은 편하게 할 수 있어야 하는 거 아닌가 하는 생각이 들어서 오랜만에 힙을 다시 공부하고 구현도 다시 연습해보았다.ㅎㅎ힙Heap힙은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전 이진 트리를 기반으로 한 자료구조이다.완전 이진 트리이진 트리 중에서 마지막 레벨 전의 레벨까지의 모든 노드들이 다 채워져 있고, 마지막 레벨에서는 왼쪽부터 오른쪽 방향으로 노드들이 채워져 있는 형태의 이진 트리를 말한다.MaxHeap부모가 자식보다 큰 경우를 말한다.MinHeap부모가 자식보다 작은 경우를 말한다.노드 추가/삭제힙에 새로운 데이터를 추가하거나 제거할 때, 힙의 자료구조 .. 2025. 6. 16.
[백준/트리/파이썬]나무 탈출 https://www.acmicpc.net/problem/15900풀이는 어렵지 않은 문제였다.다만 효율성에서 조금 제한이 있는 문제여서, 이 부분을 맞추는데 시간이 소요되었다.풀이 코드 # 초기 풀이 # https://www.acmicpc.net/problem/15900 import sys from collections import defaultdict, deque sys.setrecursionlimit(1_000_000) input = sys.stdin.readline N = int(input().strip()) tree = [[] for _ in range(N+1)] for _ in range(N-1): a, b = map(int, input().split()) tree.. 2025. 5. 25.
[백준/구현/파이썬]폰 호석만 백준 폰 호석만반복문을 최소화 하는 방향으로 풀이해보고자 했다.중간에 여러 케이스들에 걸려서 헤메고 같이 공부하는 분들의 도움을 받아서 디버깅하고 해결했다.# https://www.acmicpc.net/problem/21275import sys, collectionsinput = sys.stdin.readlinestrs = input().split()nums = []max_nums = [0, 0]for i in range(2): temps = [] for j, x in enumerate(strs[i]): temp = int(strs[i][j]) if strs[i][j].isdigit() else ord(strs[i][j]) - 87 temps.append(temp) max_nums[i.. 2025. 5. 23.
[백준/Gold5]7569. Tomato (python) https://www.acmicpc.net/problem/7569풀이 코드# https://www.acmicpc.net/problem/7569import sys, collectionsinput = sys.stdin.readline# 가로(열), 세로(행), 높이N, M, H = map(int, input().split(" "))arr = []subArr = []for i in range(M * H): if i % M == 0 and subArr: arr.append(subArr[:]) subArr = [] subArr.append(list(map(int, input().split(" "))))arr.append(subArr[:])dh = [0, 0, 0, 0, 1, -1]dr = [1, -.. 2025. 5. 15.