본문 바로가기

분류 전체보기

(402)
[백준 9345번] 디지털 비디오 디스크(DVDs) (Python3) import sys input = sys.stdin.readline mod = 10**9+7 def makeseg(start,end,x): if start==end: sseg[x] = mseg[x] = data[start] else: mid = (start+end)//2 makeseg(start,mid,x*2); makeseg(mid+1,end,x*2+1) sseg[x] = sseg[x*2]+sseg[x*2+1] mseg[x] = mseg[x*2]*mseg[x*2+1]%mod def updateseg(i,start,end,x): if start==end: sseg[x] = mseg[x] = data[start] else: mid = (start+end)//2 if i
[백준 17131번] 여우가 정보섬에 올라온 이유 (Python3) import sys input = sys.stdin.readline def update(i): while i
[백준 9202번] Boggle (Python3) import sys input = sys.stdin.readline dy = [1,1,1,0,-1,-1,-1,0]; dx = [1,-1,0,1,1,-1,0,-1] score = [0,0,0,1,1,2,3,5,11] def update(word): now = Dict for w in word: if not now.get(w): now[w] = {} now = now[w] now[0] = 1 def find(y,x,bit,now,word): if now.get(0): words.add(word) for i in range(8): y1,x1 = y+dy[i],x+dx[i] if 4>y1>=0 and 4>x1>=0: if bit&(1
[백준 1321번] 군인 (Python3) import sys input = sys.stdin.readline def updatefen(i,v): while i
[백준 16930번] 달리기 (Python3) import sys input = sys.stdin.readline from collections import * dy = [1,-1,0,0]; dx = [0,0,1,-1] def BFS(): dq = deque() for i in range(4): y1,x1 = ys+dy[i],xs+dx[i] if N>y1>=0 and M>x1>=0 and not board[y1][x1]: dq.append((y1,x1,1,i,1)) visited = [[0]*M for i in range(N)] direction = [[[0]*4 for i in range(M)] for i in range(N)] while dq: y,x,cnt,d,k = dq.popleft() if y==ye and x==xe: return cnt..
[백준 14927번] 전구 끄기 (Python3) import sys,copy input = sys.stdin.readline dy = [0,1,-1,0,0]; dx = [0,0,0,1,-1] def switch(y,x,board): for i in range(5): y1,x1 = y+dy[i],x+dx[i] if N>y1>=0 and N>x1>=0: board[y1][x1] ^= 1 def bitmask(bit): global result newboard = copy.deepcopy(board) cnt = 0 for x in range(N): if bit&(1
[백준 11003번] 최솟값 찾기 (Python3) from collections import * N,L = map(int,input().split()) seq = [*map(int,input().split())] dq = deque() for i in range(N): x = seq[i] while dq: if dq[0][1]=x: dq.pop() else: break dq.append((x,i)) print(dq[0][0],end=" ") 이전의 최솟값 찾기 [백준 11003번] 최솟값 찾기 (Python3) (tistory.com) 문제를 시간복잡도 O(NlogN)에 해결하였었는데, O(N)으로 개선한 코드이다. pypy로만 제출되었던 기존의 풀이와 다르게 python으로도 제출할 수 있었고, pypy에서도 제출시간이 크게 개선되었다. 풀이를 설명하..
[백준 5419번] 북서풍 (Python3) import sys input = sys.stdin.readline def updatefen(i): while i