[백준 2243번] 사탕상자 (Python3)
import sys input = sys.stdin.readline M = 2**20 def updatefenwick(i,v): while i= x and s-data[i] < x: return i if s < x: return find(x,i+2**c,c-1) return find(x,i-2**c,c-1) N = int(input()) data,fenwick = [0]*(M+1),[0]*(M+1) for _ in range(N): Q = [*map(int,input().split())] if Q[0]==1: idx = find(Q[1],2**19,18) data[idx] -= 1 updatefenwick(idx,-1) print(idx) else: data[Q[1]] += Q[2] updatefenwi..
[백준 1175번] 배달 (Python3)
import sys,collections input = sys.stdin.readline dy = [1,-1,0,0]; dx = [0,0,1,-1] def BFS(): visited = [[[[0]*M for i in range(N)] for i in range(5)] for i in range(3)] dq = collections.deque([(*start,0,0,4)]) while dq: y,x,t,bit,d = dq.popleft() if visited[bit][d][y][x]: continue visited[bit][d][y][x] = 1 if type(board[y][x])==int: bit |= 1=0 and M>x1>=0 and board[y1][x1] != "#": dq.append((y1..
[백준 2423번] 전구를 켜라 (Python3)
import sys,collections input = sys.stdin.readline dy = [1,1,-1,-1]; dx = [1,-1,-1,1] def BFS(): if (N+M)%2: return "NO SOLUTION" visited = [[0]*(M+1) for i in range(N+1)] dq = collections.deque([(0,0,0)]) while dq: y,x,d = dq.popleft() if visited[y][x]: continue visited[y][x] = 1 if y==N and x==M: return d for i in range(4): y1,x1 = y+dy[i],x+dx[i] if N>=y1>=0 and M>=x1>=0 and not visited[y1][x1..