풀이 bfs로 구현했다. bfs를 구현할때 그냥 외울 것: 넣기 전에 방문 처리하기 입력 문제에서 graph는 무향 그래프이므로, x값에 y, y값에 x를 append bfs 매개변수로 받은 a를 queue에 넣고 while queue:를 통해 반복문을 돈다. 만약 queue에서 나온 값이 b와 같으면 종료return 0 for문을 통해 graphx[x]리스트값을 돌며 아직 방문을 하지 않은 값이라면(visited == 0:) visited 값에 이전 visited값 +1(방문처리)을 해주고 queue.append() 만약 사촌관계가 없다면 visited[b]=0이므로 -1이 출력된다. from collections import deque import sys input = sys.stdin.readlin..
ProblemSolving/BFS
풀이 bfs로 구현 box = []를 하나의 판(?)이라고 생각하자. 이후 for문을 통해 box 안에 토마토의 가로 세로 배열이 들어간다. 만약 box[j][k] == 1 배열 안에 익은 토마토가 있다면 queue에 (i,j,k)값을 저장해준다. 이후, graph.append(box)를 통해 박스가 graph에 append되어 3차원 배열이 만들어진다. dx, dy, dz로 3차원 방향벡터를 만들어준다. bfs()에서 반복문으로 방향벡터를 통해 방문하여 방문한 값(xx,yy,zz)이 graph 안에 있고, 해당 값이 0(익지 않은 토마토)라면 해당 값에 이전값+1(날짜)를 해준 뒤 queue에 append해준다. 이후 반복문을 통해 graph의 값을 꺼내보자. if k == 0:만약 k 값이 0, 즉 ..