dfs

Algorithem/백준 PS with code

백준 #16234 - [G5] 인구 이동 : 그래프탐색, 그룹핑

(python3) 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net DFS로 그룹 지어주기, 재귀 최대 깊이 설정 open_border() 에서는 모든 칸들에 대해 DFS 를 수행해서 그룹을 만들어줍니다. 이미 그룹이 정해진 노드는 DFS 를 수행할 필요가 없으므로 넘어갑니다. population_move(g) 에서는 최대 그룹 번호를 넣어서 dict 의 초기 세팅을 진행합니다. dict에는 그룹마다 총 인구수, 포함되는 나라 수, 나라의 좌표를 저장합니다. dict 를 완성한 뒤, dict 에 저..

Algorithem/백준 PS with code

백준 #14502 - 연구소 : 구현, 그래프 탐색

(python3) 구현 아이디어 각 기능을 구현한 함수명을 함께 작성했습니다. 1. 벽 3개를 세울 수 있는 모든 방법을 찾아야 합니다. next() 는 바로 다음 빈칸을 찾습니다. next_wall() 에서는 다음 벽 3개 조합을 찾습니다. 3번 벽을 한칸 다음으로 옮겨보고, 옮길 공간이 없으면 그 2번 벽을 한칸 다음으로, 3번 벽은 2번 벽 바로 다음으로 배치합니다. 이때 3번 벽이 또 갈 곳이 없다면 1번 벽을 한칸 다음으로 옮기고 그 다음에 2번, 그 다음에 3번 벽을 배치합니다. 이때 3번 벽을 배치할 공간이 없으면 모든 벽의 조합을 다 확인해본 꼴이 됩니다. 2. 벽을 세우고, 맨 처음 배치되어 있는 모든 바이러스에 대해 dfs 를 수행하여 바이러스가 다 퍼진 뒤의 상태를 확인합니다. (in..

jamong5
'dfs' 태그의 글 목록