본문 바로가기

Algorithm475

[파이썬] 백준 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.
[파이썬] 백준 16985 : Maaaaaaaaaze (골드2) [파이썬] 백준 16985 : Maaaaaaaaaze (골드2)https://www.acmicpc.net/problem/16985풀이순열로 5x5 층 나열하는 방법 5! -> DFS로 구현중복순열로 회전하는 방법 4^5-> 비트필드 이용기존 1을 shift하는 것과 다르게 2자리씩 끊어서 볼거라 총 10자리를 2자리씩 묶는다.3(bin 11)을 rotation 구현 -> 미리 arr_rotated 배열 만들어놓고 회전된 방향별로 구해놓기방향성 생각 전체코드from collections import dequeimport sysinput = lambda: sys.stdin.readline().strip()dires = [(1,0,0),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1),(0,0,-1.. 2025. 3. 14.
[파이썬] 백준 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.