BFS
-
[Softeer] 소프티어 로봇이 지나간 경로(python)Python/Softeer 2022. 7. 26. 15:21
문제) 알고리즘) 출력 기준 1. 출발 시작점 좌표값 2. 시작시 로봇이 바라보는 방향 3. 시작부터 끝까지 로봇이 이동 결과 (전진, 좌회전, 우회전) *시작점 찾기 -그래프 탐색을 통해 '#'를 찾고 현재 위치 '#'에서 4방향을 탐색해 '.'이거나 범위외 좌표를 포함해 3개이상이라면 해당 위치는 출발점으로 설정합니다. *이동 - 이동전에 로봇의 현재 상태(방향)를 출력하고 시작한다. - 일반적인 BFS알고리즘을 사용해서 '#'를 찾으며 이동하고 방문처리는 '#' -> '.'로 바꾸면서 처리했습니다. - 3번쨰 출력물인 이동 결과는 코드상에서 방향잡기아래에 해당하는 코드로 처리했습니다. 코드) #[인증평가(1차) 기출] 로봇이 지나간 경로 #사수가 조작한 로봇이 i행 j열을 방문했다면 #이고, 방문하..
-
[백준] 2667번 단지번호붙이기(python)Python/BAEKJOON 2022. 6. 22. 00:19
문제) 알고리즘) -그래프의 대표적인 bfs 활용 - bfs탐색을 통해 이어져 있는 단지의 크기와 개수를 출력하는 것 - 방문처리는 1 => 0으로 변환하며 처리 코드) #단지번호붙이기 import sys input = sys.stdin.readline n = int(input()) g = [] size = [] move_x = [-1, 0, 1, 0] move_y = [0, -1, 0, 1] for _ in range(n): g.append(list(map(int, input().strip()))) def dfs(y,x): global cnt #단지별 사이즈 if x = n or y = n: #범위밖 조선 return 0 if g[y][x] == 1: #확인된 자리 g[y][x] = 0 cnt += 1..
-
[백준] 1012번 유기농 배추(python)Python/BAEKJOON 2022. 3. 16. 20:19
문제) 알고리즘) 그래프 목표: 농장에서 배추가 있는 구역의 수 구하기 입력부 이후 -배추의 위치를 찾고 그로부터 인접한 배추 위치 파악 현재 위치에서 십자가 형태로 탐색 반복문에서 빠져나오면 +1 => 반복문 탈출 인접해 있는 배추 한 구역을 모두 탐색한 것 최종적으로 result 출력 배추의 구역 수 코드) #유기농 배추 import sys from collections import deque input = sys.stdin.readline move_row = [0, 1, 0, -1] move_col = [-1, 0, 1, 0] def bfs(row, col, graph): d = deque() d.append([row,col]) graph[row][col] = 0 while d: x,y = d.po..