본문 바로가기

Algorithm/Data Structures39

[파이썬] 백준 1933 : 스카이라인 (골드1) [파이썬] 백준 1933 : 스카이라인 (골드1)https://www.acmicpc.net/problem/1933풀이방향성 생각힙 사용해서 풀기.이벤트 지점 양 끝만 처리해주기 전체 코드import heapq as hqimport sysinput = lambda : sys.stdin.readline().strip()N = int(input().strip())events = []# 이벤트 시작, 끝 지점 처리for _ in range(N): s,h,e = map(int,input().split()) events.append((s,-h,e)) events.append((e,0,0))events.sort()# 시작점 0에서 이벤트 발생하게 피벗 하나 설정heap = [(0,float('inf'.. 2025. 3. 29.
[파이썬] 백준 2593 : 탑 (골드5) [파이썬] 백준 2593 : 탑 (골드5)https://www.acmicpc.net/problem/2593풀이방향성 생각스택 기본이전에 쌓아놨던 값들 중 자신보다 작으면 자신의 다음 값들은 이전 스택들의 값을 탐색할 수 없다.나보다 작은 값들을 스택에서 빼주기스택이 비어있으면 레이저가 만나지 않으니 0을, 아닌 경우 해당 인덱스를 출력 전체코드import sysinput = sys.stdin.readlineN = int(input())arr = list(map(int, input().split()))stack = []answer = []for idx,val in enumerate(arr,start=1): while stack and stack[-1][1] 코멘트스택 기본stack 쓸 때 deque이.. 2025. 3. 16.
[파이썬] 백준 2696 : 중앙값 구하기 (골드2) [파이썬] 백준 2696 : 중앙값 구하기 (골드2)https://www.acmicpc.net/problem/2696풀이방향성 생각배경 지식은 heap[0]에는 항상 루트노드가 위치한다는 사실.최대 힙, 최소 힙 두 개를 사용해서 힙에서 뽑으면 가장 중앙값에 가까운 값들이 나오게 조작하기 전체코드import sysimport heapq as hqinput = lambda : sys.stdin.readline().strip()TC = int(input())for tc in range(1,TC+1): N = int(input()) low,high = [],[] answer = [] arr = [] p,q = divmod(N,10) for i in range(p+(q!=0)):.. 2025. 3. 13.
[파이썬] 백준 1655 : 가운데를 말해요 (골드2) [파이썬] 백준 1655 : 가운데를 말해요 (골드2)https://www.acmicpc.net/problem/1655풀이방향성 생각배경 지식은 heap[0]에는 항상 루트노드가 위치한다는 사실.최대 힙, 최소 힙 두 개를 사용해서 힙에서 뽑으면 가장 중앙값에 가까운 값들이 나오게 조작하기 전체코드import sysimport heapq as hqinput = lambda : sys.stdin.readline().strip()N = int(input())low = [] high = [] for _ in range(N): x = int(input()) hq.heappush(low,-x) if high and -low[0] > high[0]: hq.heappush(high,-h.. 2025. 3. 13.