목록ArrayDeque (3)
개발 무지렁이

미로 탈출 / 구현문제 🚀 🪅. BFS를 'Queue'를 이용하여 구현할 줄 알아야 한다. => 구현하면서 문제의 조건을 잘 따져서 넣어주어야 한다. 🪅. String의 내장 메서드 '.toCharArray()'를 사용하면 편리하다. 🪅. BFS의 '깊이(or Level)'를 구할 줄 알아야 한다. => queue의 'size()'와 'for문' 이용 import java.util.*; class Solution { char[][] gMaps; int cnt; int[] dx = {-1, 0, 1, 0}; int[] dy = {0, 1, 0, -1}; int flag = 0; public void calExitDist(int[] st..

카드2 🪅 카드를 빼는 위치와 옮기는 위치를 보고서 큐(Queue)를 생각할 수 있느냐 🪅 큐(Queue)를 구현할 수 있느냐 => new ArrayDeque(); 🪅 어떤 동작을 반복할 때, 반복동작을 메서드로 만들 수 있느냐 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; /** * 백준 2164번 카드2 * * 입력: * 첫째 줄에 정수 N(1 ≤ N ≤ 500,000)이 주어진다. * * 출력: * 첫째 줄에 남게 되는 카드의 번호를 출력한다. * */ public class Main {..

그래프의 모든 노드를 탐색하는 BFS(Breadth First Search) 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 시작노드에서 출발하여 레벨 기준으로 자기 레벨을 다 탐색하고 내려가는 과정을 반복하는 것을 ' 넓이우선탐색(BFS) '라고 한다. ** (시작노드 기준으로 가까운 노드를 먼저, 최단경로를 보장) ** 🕑 시간복잡도: O(V+E) (V:정점수, E:간선수) [모든 정점을 한 번씩 방문하고, 그러기 위해 모든 간선을 한 번씩 검사했으니] BFS와 큐 BFS는 큐(Queue)로 구현하며, 큐(Queue)란 먼저 들어온게 먼저 빠지는 형태의 자료구조(FIFO)를 말한다 Queue queue = new ArrayDeque(); BFS 코드 구현 ⚠️ 한번 방문한 노드..