바이러스 풀이 1) bfs bfs 기본 코드로 구현 List 배열에 각 노드 인접 정점 저장 visited 배열로 방문 확인 양방향 그래프로 구현 bfs 로 순회하면서 queue에 정점 넣을 때마다 count 증가 2) dfs dfs 재귀로 구현 재귀 돌릴 때마다
유기농배추2차원 배열로 map 구현2차원 배열 visited로 방문 처리사방탐색 dx,dy 배열로 처리bfs 구현 -> Queue 사용dfs 구현 가능1이 모여 있는 구역을 찾아서 count하는 문제. 토마토, 미로, 단지 등과 같은 유형2중 for문으로 map 돌면서
DFS와 BFSArrayList 배열로 구현boolean 배열로 방문처리단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 라는 조건 때문에 ArrayList 배열 정렬함(Collections.sort 사용)StringBuilder
효율적인 해킹시간초과 계속 남ㅠA가 B를 신뢰하는 경우에는 B를 해킹하면, A도 해킹할 수 있다는 소리다. 라는 설명 때문에 node\[B].add(A) 로 구현하고, count\[B]++ 로 했는데, 이렇게 하면 시간초과.node\[A].add(B) 로 구현하고,
양울타리(- 전역변수로 각 구역의 w_cnt(늑대수),s_cnt(양의수) 를 선언 후, bfs 내에서 cnt를 셈.bfs 실행 뒤, 구역 내의 양의 수가 많으면 총 양의 수인 s_ans에 그 구역의 양의 수를 더해주고, 아니라면 총 늑대의 수인 w_ans 에 구역의 늑
섬의 개수구역찾기, 8방탐색으로 dfs 수행while문 안에서 BufferedReader 를 계속 선언해서 틀렸습니다가 떴음. BufferedReader는 while문 밖에 선언할 것
나이트의 이동최소 몇번 만에 이동할 수 있는지 를 요구했기 때문에 bfs로 풀어야 된다고 생각함.일반 8방탐색이 아니고, 좀 더 퍼진(?) 8방탐색Queue에 int\[] {x,y,cnt} 배열을 넣어, 직전 cnt+1 하는 방식으로 진행
침투 풀이 입력의 첫행에서 0인 곳에서만 탐색을 시작할 수 있기 때문에 Queue를 선언해서 시작점 후보들을 저장함. dfs를 이용해서, 각 시작점에서 시작하여 마지막 행의 0인 후보들에 도착할 수 있는지 확인함 실행시간이 많이 걸림 -> bfs로 풀면 더 적게 걸리
돌다리bfs로 풀이int\[] map = new int\[100001]; map배열을 선언 후, 탐색 방향이 8개 이므로 int\[] dx = { 1, -1, A, -A, B, -B } 로 6개 경우 탐색 후, 현 위치의 A배나 B배의 위치로 이동 하는 두개의 경우
현수막1과 0으로 이루어진 input이 주어지고, 1이 상하좌우,대각선방향으로 연결되어 있으면 하나의 글자로 보기로 했으므로, 8방탐색 bfs 로 풀었다.특별한 것 없이 기본 풀이로 풀었음.
텔레포트 정거장주예의 위치 : S, 방주의 위치 : E점 X에서 이동가능 : X+1, X-1, X와 연결된 점S에서 E까지 가는 최소 시간을 구하는 문제이므로 BFS를 이용했다.List\[] 배열로 각 점과 연결된 점들을 배열에 담았고, BFS 할 때, Listx에 갈
점프점프돌다리에 숫자가 적혀있고, 이 숫자가 적혀있는 만큼 왼쪽이나 오른쪽으로 점프할 수 있다.자기가 방문 가능한 돌들의 개수를 알고 싶다.출발점 s가 주어진다.bfs 로 풀었다. 숫자가 적혀있는 만큼 왼쪽, 오른쪽으로 점프하는 두개의 경우만 고려해서 탐색하면 됨.방문
결혼식상근이는 자신의 친구와 친구의 친구를 초대하기로 했다.친구관계를 조사한 리스트를 갖고 결혼식에 초대할 사람의 수를 구해라.bfs,dfs 둘다 될 것 같은데 난 bfs로 풀었다.친구의 친구까지만 고려해야 하기 때문에, bfs 돌릴 때 depth를 저장해서, dept
아기상어2어떤 칸의 안전거리는 그 칸과 가장 거리가 가까운 아기 상어와의 거리이동은 8방향이 가능하다.안전거리가 가장 큰 칸을 구하라map에서 0인 각 칸에 대해서 최초로 1을 만날 때 까지 bfs를 수행하며 이동 거리를 저장한다.그 중 가장 큰 거리를 정답으로 출력한
SILVER 2️⃣ / BFS.DFS
LEVEL 2️⃣ / DFS,BFS