BFS

👉🏻 16946번: 벽 부수고 이동하기 4 from collections import dequeimport sys; input=sys.stdin.readlinedef bfs(i, j, group_id): q = deque() q.append((i, j)) visited[i][j] = True count = 1 # 현재 그룹의 0 개수 while q: x, y = q.popleft() group_ids[x][y] = group_id # 그룹 번호 할당 for d in range(4): nx = x + dx[d] ny = y + dy[d] if nx = n ..
항해 99에서 자체적으로 새롭게 제작한 크롬 익스텐션 '탭고리즘'이라는 서비스가 최근 공개되었습니다.이 '탭고리즘'에서 출제되는 문제들이 백준 골드나 플레티넘 티어 정도였기 때문에 머리를 깨우는 겸 살짝씩 풀어보고 블로그에 해당 문제들을 리뷰해보고자 합니다! 👉🏻 2206번: 벽 부수고 이동하기☀️ 오늘의 문제from collections import dequedef bfs(n, m, grid): directions = [(0, 1), (1, 0), (0, -1), (-1, 0)] visited = [[[False] * 2 for _ in range(m)] for _ in range(n)] # 3차원 방문 배열 queue = deque([(0, 0, 0, 1)]) # (x, y, ..
👉🏻 24444번: 알고리즘 수업 - 너비 우선 탐색 1import sys; input=sys.stdin.readlinefrom collections import deque, defaultdictdef bfs(graph, start, visited): queue = deque([start]) visited[start] = 1 order = 2 while queue: node = queue.popleft() for neighbor in graph[node]: if visited[neighbor] == 0: visited[neighbor] = order queue.append(neigh..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom collections import dequedef bfs(graph, start): distance = {node: float('inf') for node in graph} distance[start] = 0 queue = deque([start]) while queue: current_node = queue.popleft() for neighbor_node in graph[current_node]: if distance[neighbor_node] == float('inf'):..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(places): directions = [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)] def is_safe(place): for r in range(5): for c in range(5): if place[r][c] == 'P': for dr, dc in directions[:4]: ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfrom collections import dequedef solution(board): dx, dy = [-1, 1, 0, 0], [0, 0, 1, -1] queue = deque() n = len(board) m = len(board[0]) dist = [[float('inf') for _ in range(m)] for _ in range(n)] for i in range(n): for j in range(m): if board[i]..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfrom collections import dequedef solution(maps): n, m = len(maps), len(maps[0]) start, end, l_point = None, None, None for i in range(n): for j in range(m): if maps[i][j] == 'S': start = (i, j) elif maps[i][j] == 'L': ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr첫 번째 접근: dfsimport sys; sys.setrecursionlimit(10000)def solution(maps): answer = [] dx, dy = [0, 0, -1, 1], [-1, 1, 0, 0] def dfs(x, y): visited[x][y] = True foods = int(maps[x][y]) for i in range(4): nx, ny = x + dx[i], y + dy[i] ..
ReJoy
'BFS' 태그의 글 목록