백준 BFS문제

코딩테스트/백준

[백준] 2606번 - 바이러스 (파이썬)

" 백준 2606번 바이러스 문제 파이썬 " " 💡 문제 해결 아이디어 " 바이러스 문제는 그래프에서 1에 연결되어 있는 노드를 탐색하여 그 갯수를 출력하는 문제이다. 방문한 노드는 visited 배열에 True로 저장하여 중복 탐색하지 않도록 구현한다. 주어지는 입력값을 이용하여 연결 관계 그래프를 생성하고 1번 노드를 시작으로 연결되어 있는 노드의 갯수를 카운트하면 정답을 도출할 수 있다. 예제 입력 값을 통하여 연결 관계 그래프를 생성하면 다음과 같은 그래프가 생성된다. 주의 사항! 입력받은 값들로 그래프를 그릴 때에 방향이 있는 그래프가 아니므로 node1에 node2을 연결해주었다면, node2에도 node1을 추가해주어야 한다. 만약 node1에 node2을 연결하는 작업만 진행한다면 아래와 ..

코딩테스트/백준

[백준] 1926번 - 그림 (파이썬)

" 백준 1926번 그림 문제 파이썬 " " 💡 문제 해결 아이디어 " 1926번 그림 문제는 0과 1로 이루어진 그래프에서 상하좌우가 1로 연결된 그림을 찾아 그 갯수와 그 그림들 중 가장 넓은 넓이를 출력하는 문제이다. for문을 통해 그래프의 0,0 ~ n-1,m-1 까지 전체를 탐색하며 값이 1인 지점을 찾을 때마다 cnt +=1 을 한다. 그리고 값이 1인 지점의 x,y좌표를 bfs로 탐색하여 그 지점에 연결되어 있는 1들을 모두 0으로 변경하며 1이 0으로 변경되는 횟수를 area(넓이) 변수에 +1 해주고 더이상 연결된 1이 없다면 area 변수의 값을 return한다. return받은 area변수는 이전에 서칭한 가장 넓었던 그림의 면적(maxArea 변수)와 비교하여 더 큰 값을 다시 m..

코딩테스트/백준

[백준] 1260번 - 음식물 피하기 (파이썬)

백준 1260번 음식물 피하기 문제 "💡 문제 해결 아이디어 " 해당 문제는 BFS를 통해 해결할 수 있었다. 음식물 피하기는 어떤 가장 큰 음식물 쓰레기의 사이즈를 구하는 문제이다. 음식물 쓰레기는 근처(상,하,좌,우)에 붙어있으면 더 큰 크기로 변하는데 가장 많이 붙어있는 음식물 쓰레기의 범위를 구하면 되는 문제이다. 이러한 힌트가 문제에 주어지는데 이처럼 그래프를 형성하여 BFS를 통해 가장 많이 연결되어있는 '#'의 count를 구해 답을 유추했다. 0,0 ~ n-1,m-1 범위를 이중 반복문으로 모두 방문하며 그래프의 값이 '#'이면 bfs를 통해 연결되어있는 음식물 쓰레기의 갯수를 구해 return한다. 여기서 return 받은 값들 중 가장 큰 값이 답이기 때문에 max라는 변수를 -1로 초..

PgmJUN
'백준 BFS문제' 태그의 글 목록