문제 정보 문제 출처: 백준 온라인 저지 문제 링크: 2606 바이러스 제출 언어: Swift 알고리즘 분류: 그래프 이론 그래프 탐색 너비 우선 탐색 풀이 해당 문제는 그래프에서 쌍방향으로 연결되어 있는 노드의 개수를 카운트하는 것으로 이해하였다 나는 이 문제를 BFS(Breadth-First-Search)를 이용하여 풀이하였다 DFS로도 풀 수 있는 문제였지만 점진적으로 퍼져가는 바이러스를 시각적으로 표현하기에는 BFS가 적당할 것 같았다 for i in 0.. count = 0분명히 컴퓨터들은 쌍방향 연결이지만, 내가 직전에 짠 코드는 앞에 써져 있는 숫자의 컴퓨터가 뒤에 써져 있는 숫자의 컴퓨터로 바이러스가 퍼지는 경우만 고려하였다 그러므로 다음과 같이 코드를 변경해주었다 단순히 반대방향으로의 경..
문제 정보 문제 출처: 백준 온라인 저지 문제 링크: 1303 전쟁 - 전투 제출 언어: Swift 알고리즘 분류: 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 풀이 기본 BFS, DFS문제에 마지막 병사의 수를 제곱해서 더해주는 부분만 처리해주면 되는 문제였다 나는 visited 2차원 배열로 방문 여부를 파악하고 arr에 전쟁터에 있는 병사의 팀 상태를 입력해준다 func countSoldier(_ team: Character, _ x: Int, _ y: Int, _ count: inout Int) -> Int { visited[x][y] = true guard arr[x][y] == team else {return count} for i in 0...3 { if arr[x+dx[i]][..