BFS 너비 우선 탐색 - 코드 템플릿
·
🧇 Algorithm/이론
BFS 코드 def bfs(S, E): queue = [S] visited = [0] * (V + 1) visited[S] = 1 # 방문 표시: 거리 while queue: c = queue.pop(0) # 이 부분에서 정답 처리! if (정답 조건): return answer # 거리: visited[c] - 1 (시작 노드 제외) # 가능 여부: 1 for n in (탐색할 영역): # 연결된 노드, 4방향, 8방향, 조건 등 if visited[n] == 0: # 미방문 queue.append(n) visited[n] = 방문 표시 # 거리: visited[c] + 1 # 방문: 1 return 0 # 불가능 정답 조건 아래는 "(정답 조건)" 부분에 대한 코드를 구현한 것이다. # 도착 지점에 ..
[백준] 7576 - 토마토
·
🧇 Algorithm/백준
Silver I 문제 ( www.acmicpc.net/problem/7576 ) 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, ..