목록알고리즘/깊이&너비 우선 탐색(DFS&BFS) (21)
코드굽는 타자기
링크 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 문제설명 깊이&너비 우선탐색 + 시뮬 문제풀이 상하좌우 이동말고 축 기준으로 돌리면서 이동가능한 경로 탐색 문제이다. 2칸을 차지하는 것을 기억하기위해서 중간 지점을 visited로 관리한다. BFS로 탐색했다. visit 처리해서 DFS도 될듯. 문제코드 package programmers; import java.util.LinkedList; public class Solution60063_블록_이동하기 { public static int[][] dir = { {-1,0}, {0,1}..
링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 그래프 탐색, 거리가 가장 먼 node 갯수 구하기 문제풀이 BFS depth별 탐색 마지막 반복횟수 리턴 문제코드 import java.util.LinkedList; public class Solution { public static int solution(int n, int[][] edge) { int answer = 0; LinkedList[] adj = new LinkedList[n]; for (int i = 0; i < n; i++) { adj[i] = new LinkedList(); ..
링크 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀있고, i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다. 수의 위치는 다음을 만족한다. (i, 1)은 (i, 2), (i, M)과 인접하다. (i, M)은 (i, M-1), (i, 1)과 인접하다. (i, j)는 (i, j-1), (i, j www.acmicpc.net 문제설명 시뮬레이션 + 연결성 탐색 문제풀이 연결성 탐색 = DFS, BFS 문제코드 import java.io.BufferedReader; import java.io.FileInputStre..
링크 16973번: 직사각형 탈출 크기가 N×M인 격자판에 크기가 H×W인 직사각형이 놓여 있다. 격자판은 크기가 1×1인 칸으로 나누어져 있다. 격자판의 가장 왼쪽 위 칸은 (1, 1), 가장 오른쪽 아래 칸은 (N, M)이다. 직사각형의 가장 왼쪽 위칸은 (Sr, Sc)에 있을 때, 이 직사각형의 가장 왼쪽 위칸을 (Fr, Fc)로 이동시키기 위한 최소 이동 횟수를 구해보자. 격자판의 각 칸에는 빈 칸 또는 벽이 있다. 직사각형은 벽이 있는 칸에 있을 수 없다. 또한, 직사각형은 격자 www.acmicpc.net 문제설명 직사각형을 벽을 피해서 이동하며 경로찾기 문제풀이 직사각형 이동 가능성 검사하면서 BFS 갈수 없는 부분을 움직이면서 체크하기 -> 체크 다 한 후 움직이기 문제코드 package ..