[백준] 1012번 유기농 배추(with python)
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1. 내가 작성한 코드 1. BFS풀이 from collections import deque def bfs(matrix, x,y): queue = deque() queue.append((x,y)) matrix[x][y] = 0 while queue: x,y = queue.popleft() dx = [-1,1,0,0] dy = [0,0,-1,1] for i in range(4): nx = x + dx[i] ny..
2023. 2. 8.
[백준] 2667번 단지번호붙이기(with python)
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 1. 내가 작성한 코드 from collections import deque n = int(input()) total = [list(map(int, input())) for i in range(n)] result = [] #단지 개수를 담을 LIST dx = [-1,1,0,0] #좌우 이동을 위한 좌표 dy = [0,0,-1,1] #상하 이동을 위한 좌표 def bfs(total, x,y): que..
2023. 2. 8.
[알고리즘] DFS, BFS + 문제풀이
인접 행렬 : 2차원 배열로 그래프의 연결관계 표현 인접 리스트 : 리스트로 그래프의 연결 관계 표현 DFS 루트 노드에서 시작해서 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법 깊은 부분을 우선적으로 탐색 스택, 재귀함수 이용 def dfs(graph, v, visited): visited[v] = True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] visited = [False] * 9 dfs(graph, 1, visited) BFS 가까운 노드부터 탐색하는..
2023. 2. 7.