본문 바로가기

백준(BOJ) 풀이

(46)
[백준 2667] 단지 번호 붙이기 def ds(M,m,n,p,q): if M[p-1][q-1]==0: return set() a=[] b=set() a.append([(p,q)]) b.add((p,q)) k=0 while True: d=set() for i in range(len(a[k])): if 0
[백준 1753] 최단경로 from queue import PriorityQueue import sys def Dijkstra(G,sp): INF=float("inf") dist=[INF] prev=[0] Q=set() que=PriorityQueue() for i in range(1,n+1): if i==sp: dist.append(0) else: dist.append(INF) prev.append(0) Q.add(i) que.put((dist[i],i)) while Q!=set(): while True: temp_u=que.get()[1] if temp_u in Q: u=temp_u break Q.remove(u) for i in range(1,len(G[u])+1): alt=dist[u]+G[u][i-1][1] if alt
[백준 17836] 공주님을 구해라 def maze(M,m,n,p,q): a=[] b=set() a.append([(p,q)]) b.add((p,q)) k=0 if (1,1)==(p,q): return 0 d=set() while (1,1)!=(m,n): d=set() for i in range(len(a[k])): if 0
[백준 1002] 터렛 n=int(input()) for i in range(n): x,y,r,X,Y,R=map(int, input().split()) if x==X and y==Y and r==R: print(-1) elif x==X and y==Y and r!=R: print(0) else : powerofD=(x-X)**2 +(y-Y)**2 if (R+r)**2powerofD and (abs(R-r))**2
[백준 1914] 하노이 탑 def Hanoi(n,a,b): c=list({1,2,3}-{a,b})[0] if n!=1 : Hanoi(n-1,a,c) print(a,b) if n!=1 : Hanoi(n-1,c,b) n=int(input()) print(2**n -1) if n
[백준 15649] N과 M(1) def NM(lst,Plst,n): if n==0: for i in range(len(Plst)-1): print(Plst[i], end=" ") print(Plst[len(Plst)-1]) else : for i in range(len(lst)): Nlst=[i for i in lst] NPlst=[i for i in Plst] Nlst.remove(lst[i]) NPlst.append(lst[i]) NM(Nlst,NPlst,n-1) m,n=map(int, input().split()) lstA=[i+1 for i in range(m)] NM(lstA,[],n)