practivceAlgorithm/백준 379

[백준][Python] 1541 잃어버린 괄호

처음에 dfs하려다 숫자 처리하기 귀찮아서 그냥 단계별로 파싱함. eval쓸수있었으면 4줄로 끝나는데 0으로 시작하는 숫자있어서 int처리 해줘야함. import sys input = sys.stdin.readline # eval쓸라그랬는데 0으로 시작하는 숫자있어서 실패.. expression = input().split('-') new_expression = [] for ex in expression: nums = ex.split('+') sum_n = 0 for num in nums: sum_n += int(num) new_expression.append(sum_n) print(2*new_expression[0] - sum(new_expression))

[백준][Python] 1389 케빈 베이컨의 6단계 법칙

대놓고 플로이드 워셜이라 풀었는데 카테고리는 bfs.. bfs로 풀수있나? import sys input = sys.stdin.readline # 플로이드 워셜 탐색 N, M = map(int, input().split()) graph = [[float('inf') for _ in range(N+1)] for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) graph[a][b] = 1 graph[b][a] = 1 for k in range(1,N+1): graph[k][k] = 0 for i in range(1,N+1): for j in range(1,N+1): if graph[i][j] > graph[i][k] + graph[k..

[백준][Python] 18352 특정거리의 도시찾기

다익스트라로 찾습니다. 최소거리는 늘 다익스트라 import sys input = sys.stdin.readline from collections import deque def dijkstra(start): queue = deque() queue.append([0,start]) visited = {i: float('inf') for i in range(1,N+1)} visited[start] = 0 while queue: cur_dist,cur_node = queue.popleft() for next in graph[cur_node]: if visited[next] > cur_dist+1: visited[next] = cur_dist+1 queue.append([visited[next], next]) r..

[백준][Python] 14442 벽 뿌수고 이동하기2

분기있는 bfs. 벽을 뿌순 횟수에 따라 분기를 나눠준다. import sys input = sys.stdin.readline from collections import deque def bfs(x,y): queue = deque() queue.append([x,y,0]) visited = [[[0]*(K+1) for _ in range(M)] for _ in range(N)] visited[x][y][0] = 1 while queue: x,y,b_cnt = queue.popleft() if x==N-1 and y==M-1: return visited[x][y][b_cnt] for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0

[백준][Python] 14938 서강그라운드

다익쓰 다익써야한느 이유는 최소 거리로 갱신시키면서 가야 최대한 멀리 갈 수 있기 때문. import sys input = sys.stdin.readline from heapq import heappop,heappush def dijkstra(start): heap = [] heappush(heap,[start,0]) visited = {i: float('inf') for i in range(1,n+1)} visited[start] = 0 item_check = {i: False for i in range(1,n+1)} item_check[start] = True item_cnt = items[start] while heap: cur_node, total_dist = heappop(heap) for ne..