본문 바로가기

반응형

코딩 이야기/백준 풀이

(51)
백준 9019번: DSLR 파이썬 코드(BFS) import sys from collections import deque t = int(sys.stdin.readline()) def bfs(a1,b1): queue = deque([]) queue.append([a1, ""]) visited = [0 for _ in range(10000)] while queue: now, string = queue.popleft() if now == b1: return string #D--------------------------------- temp2 = now now = now * 2 if now > 9999: now = now % 10000 if visited[now] == 0: queue.append([now, string + "D"]) visited[now]..
백준 1931번: 회의실 배정 파이썬 코드(그리디 알고리즘) import sys n = int(sys.stdin.readline()) mm = [] #mm은 회의실 목록 temp = 0 count = 0 for _ in range(n): start, end = map(int, sys.stdin.readline().split()) mm.append([end,start]) mm = sorted(mm) for i in range(n): if i == 0: temp = mm[i][0] count += 1 else: if temp
백준 15686번: 치킨 배달 파이썬 코드(백트래킹) import sys from itertools import combinations n,m = map(int, sys.stdin.readline().split()) home = [] chicken = [] for i in range(n): a = list(map(int, sys.stdin.readline().split())) for j in range(n): if a[j] == 1: home.append([i+1,j+1]) elif a[j] == 2: chicken.append([i+1,j+1]) INF = sys.maxsize temp = [] dislist = [] for k in combinations(chicken, m): distance = [INF for _ in range(len(home))]..
백준 13549번: 숨바꼭질 3 파이썬 코드(bfs) import sys from collections import deque n,k = map(int,sys.stdin.readline().split()) x = [-1, 1, 2] ll = [] def bfs(now,target): queue = deque([]) visited = [0 for _ in range(300009)] queue.append([now,0]) while queue: q,c = queue.popleft() visited[q] = 1 if q == target: count = c ll.append(count) for i in range(3): if i == 2: a = q * 2 if visited[a] == 0 and 0
백준 1912번: 최소비용 구하기 파이썬 코드(다익스트라) import heapq import sys n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) INF = sys.maxsize graph = {} dist = [INF] * (n) queue = [] for _ in range(m): s,t,w = map(int, sys.stdin.readline().split()) if s-1 not in graph: graph[s-1] = [[t-1,w]] else: graph[s-1].append([t-1,w]) startpoint, endpoint = map(int, sys.stdin.readline().split()) def dijkstra(start): heapq.heappush(queue, [0, sta..
백준 1697번: 숨바꼭질 파이썬 코드(bfs) import sys from collections import deque n,k = map(int,sys.stdin.readline().split()) x = [-1, 1, 2] def bfs(now,target): queue = deque([]) visited = [0 for _ in range(300009)] queue.append([now,0]) while queue: q,c = queue.popleft() visited[q] = 1 if q == target: count = c return count for i in range(3): if i == 2: a = q * 2 else: a = q + x[i] if visited[a] == 0 and 0
백준 7576번: 토마토 파이썬 코드(bfs) import sys from collections import deque x = [-1,1,0,0] y = [0,0,-1,1] count = 0 m,n = map(int, sys.stdin.readline().split()) box = [list(map(int,sys.stdin.readline().split()))for _ in range(n)] def bfs(): global count queue = deque([]) for i in range(n): for j in range(m): if box[i][j] == 1: queue.append([i,j,0]) while queue: a,b,c = queue.popleft() for k in range(4): aa = a + x[k] bb = b + y[k..
백준 1038번: 감소하는 수 파이썬 코드(백트래킹) n = int(input()) count = 9 dis = 2 minicount = 0 result = [] result1 = [] def backtracking(): global count global dis global minicount if n >= 1023: print(-1) return if 0 = result[-1]: continue result.append(i) backtracking() if len(result) > 0: result.pop() else: pass backtracking()

반응형