깊이 우선 탐색

CS/알고리즘 문제 풀이

[백준] 2667 - 단지번호붙이기 [Python(파이썬)]

문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 이전 문제인 바이러스가 1차원 리스트 형태(정확히는 인접 리스트)의 그래프 탐색이었다면, 이 문제는 2차원 리스트 형태의 그래프 탐색이라고 할 수 있다. 이런 문제 유형의 경우 탐색할 방향을 좌표의 형태로 리스트에 담아놓은 후 for문을 통해 4방향 탐색을 진행하면 된다. 그 다음엔 조건문을 통해 다음에 방문할 노드가 범위를 초과하는지 체크한 후, 방문 여부를 결정하면 된다. 나는 재귀 ..

CS/알고리즘 문제 풀이

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

문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 이 문제는 가장 기초적인 그래프 탐색 문제다. 1번 노드부터 시작해서 깊이 우선 탐색을 시작하며, 노드를 방문할 때마다 횟수(cnt)를 1씩 증가시킨다. 문제의 조건에 "1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다."라고 명시되어있으므로 1번 컴퓨터를 제외한 방문 횟수(cnt-1)를 출력하면 된다. 코드 import sys import collections..

코택
'깊이 우선 탐색' 태그의 글 목록