본문 바로가기

backjoon bfs

(2)
백준 2606번 - 바이러스 (C++/BFS/Graph) 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 접근법 간단한 BFS문제이다. 오랜만에 adjacants를 쓰는 문제가 나와 기분이 좋았다. (그동안은 배열에서 +- 1하면서 하느라 귀찮았다...) BFS를 시작점을 1로 해서 visited가 1로바뀌는 순간마다 cnt를 ++ 해주면 된다. 다만 자기자신은 빼야하므로, 마지막 출력때 -1을 해주었다. BFS개념을 알고있으면 얼마 걸리지 않을 문제이다. 코드 #include #include #in..
백준 2667 번 - 단지번호붙이기(C++/BFS/Graph) 문제 접근법 집단을 이루고있는 개수, 그 집단의 구성수 를 보고 그래프로 풀수 있겠다 생각했다. 다만 탐색 이전에 미리 노드간의 연결을 표현했던것 과는 다르게, bfs를 하면서 상하좌우를 탐색하면서 길을 찾아나가야 했다. 이전 BFS문제들과 탐색방법 하나만 달라서 접근은 쉬웠으나, 입력을 띄어쓰기 없이 받는다. 즉 0 1 0 0 0 1 1 이 아니라 0100011 로 받는다. string으로 한줄을 받고, 한 문자마다 '0' 을 빼주어서 배열에 넣어주었다. for (int i = 0; i > num; for (int j = 0; j < N; j++) { arr[i][j] = num[j] - '0'; } } 탐색은 dx, dy의 배열을 미리 만들어 주어서 for문을 돌아 탐색..

728x90
반응형