DFS DFS(깊이우선탐색), BFS(너비우선탐색) 그래프와 트리 그래프(graph) 정점(node)과 그 정점을 연결하는 간선(edge)로 이루어진 자료구조의 일종 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것 트리 아주 간단한게만 말하자면, 그래프 중에서 방향성이 있는 비순환 그래프 ❗️그래프의 모든 정점 탐색 방법 그래프의 모든 정점 탐색 방법에도 여러 가지가 있다. 그중에서 가장 대표... DFSBFSBFS [BOJ] 5568 카드 놓기 아이디어 Level이 0일 때, 즉 아직 카드를 고르지 않았을 때 StringBuilder를 생성하고 sb에 고른 카드를 담도록 하였다. 이후 해당 노드 탐색을 종료하면 sb에 담은 카드를 삭제해 주었다.... DFSbaekjoon코딩테스트DFS 열쇠 (백준 9328번) 해당 문제를 까다롭게 만드는 조건 중 하나는 맵에서 새로운 열쇠를 획득할 수 있다는 것인데 열쇠를 새로 획득하면 그 순간 움직일 수 있는 맵의 범위가 바뀌게 된다. DFS로 문제를 해결하고자 했고 어떤 방법으로 구현해야 할지 내가 떠올렸던 방법은 열쇠를 줍는 순간 해당하는 문을 '.'(빈공간)으로 바꿔주는 방식이었다. (정확하게는 HashTable에 새로운 key를 등록한 후 다시 DFS 돌... 알고리즘DFSDFS [알고리즘] Java / 백준 / 텀 프로젝트 / 9466 [알고리즘] Java / 백준 / 텀 프로젝트 / 9466 문제 코드... baekjoonJavaDFSDFS 그래프 탐색의 기본, DFS와 BFS DFS는 깊이 우선 탐색. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조(혹은 재귀 함수) 이용 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 너비 우선 탐색... 그래프 탐색BFS알고리즘DFSBFS BOJ 14501.퇴사 입력 1 : N(날짜) 2 ~ N+1 : T_i(기간) P_i(금액) 주의사항 1) STL에 정의돼있는 함수 이름과 중복되지 않게 변수 선언하기 구현방식: DFS 기반 완전탐색 1) DAY 1 ~ DAY N까지 DFS(배열 접근 0 ~ N-1) 2) DFS 함수 -종료 조건 : 탐색하려는 day가 N이상인가?(배열 접근 고려) -재귀호출 ①탐색하는 day와 해당 상담기간의 합이 N이하일 때,... 삼성SW역량테스트기출알규리즘bojDFS백준DFS [algo] DFS, BFS란? 알고리즘BFSDFSBFS [백준] 2617 : 구슬 찾기 다시풀문제그래프DFS백준코딩테스트DFS DFS 피보나치 수열 (메모제이션) Array로 푼 피보나치수열 : Array로 푼것이 재귀함수보다 더 성능이 좋다. 재귀함수(DFS)로 푼 피보나치수열 개선된 피보나치 수열 : 메모제이션을 이용, 배열에 저장하고 이미 계산된 것은 재사용해서 처리속도가 높아진다!... 메모제이션피보나티 수열DFSDFS WEEK. 02 2022.04.08 TIL 먼저 들어 온 데이터가 먼저 나가는 형식(선입선출)의 자료구조로, 입구와 출구가 모두 뚫려 있는 터널과 같은 형태로 시각화 할 수 있음. DFS는 스택 자료구조(혹은 재귀 함수)를 이용하며, 구체적인 동작은 다음과 같음. 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리를 함. 2) 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리를 함. B... DFSBFSBFS [BOJ] 1967 : 트리의 지름 🔒 예제 🔧 풀이 🔑 답안 💡 개념... DFSalgorithmpythonGraphtreeDFS 백준 1260 DFS와 BFS JAVA 백준JavaDFS1260BFS1260 [백준 20058] 마법사 상어와 파이어스톰 (JAVA) 시뮬레이션, 배열 회전, dfs(bfs) 문제 부분 배열별로 배열을 시계방향 90도 회전 회전이 끝나면 인접 얼음이 3개 미만인 칸은 얼음 크기 -1 (4방 탐색) 최종적으로 배열의 전체 얼음 합과 최대 덩어리 크기(그래프 탐색) 배열 회전이 어려웠던 문제이다. 처음엔 다음과 같은 방식으로 회전시키려 했다. 코드를 보면 알겠지만 인덱스때문에 머리 아파 죽을 뻔 했다....🤔 배열 90도 회전... DFS알고리즘시뮬레이션배열 회전DFS <Baekjoon> #23290 Simulation, BFS, DFS, Backtracking_마법사 상어와 복제 c++ 따라서 물고기 번호 vector<int> fnum, scent_time을 저장하는 맵을 만들어준다 현재 시간을 Time 이라고 두고, 물고기가 상어에게 잡혀 사라질 때 scent_time=Time 을 넣어준다. 그러고 후에 두 번 전 연습에서 생긴 물고기의 냄새가 격자에서 사라질 때, Time-scent_time==2인 경우 scent_time=0으로 만들어주는 방법을 사용한다 1. star... DFSalgorithmBacktracking"삼성SW"simulationBFS"삼성SW" [백준] 2606번 : 바이러스 (파이썬) 문제 나의 답안 접근 방법 1번 컴퓨터부터 접근하므로 n+1개의 노드를 갖는 그래프를 생성한다. 이후 반복문을 통해 각 쌍을 연결하는 간선을 생성해준다. 방문한 노드는 1로 저장하고, 아닌 노드는 0으로 간주한다. dfs 함수에선 방문한 노드인지 판별해주고, 방문한 노드의 수를 반환해준다. 감염된 컴퓨터의 개수에선 1은 포함되지 않으므로 -1을 해준다.... 문제풀이_백준DFSDFS SWEA1861 정사각형 방 SWEA 알고리즘DFS2차원 배열BFS2차원 배열 [백준] 14501번 💻 C++ 기반 퇴사 ✔️ DP로도 풀 수 있지만, 문제가 간단하기 때문에 그냥 DFS로 돌려서 다 확인해도 됨... 코테깊이우선탐색시뮬레이션DFS백준DP코딩테스트DFS [백준] 21606 : 아침 산책 그래프BFSDFS백준코딩테스트BFS [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 문제 접근 방식 3가지 연산을 통해 나온 결과를 k로 가정할 때 N부터 k까지의 거리 최솟값을 구하기 위해 dp를 활용한다. dp에서의 점화식은 다음과 같다 또한 dp에 최소 거리가 갱신될 때 해당 수의 부모를 parent 배열에 저장하여 추후에 1부터 역탐색하여 1로 만드는 방법에 포함된 수를 얻는다. 코드... DPbaekjoonJavaDFSDFS BJ1260 DFS와 BFS DFS 깊이우선탐색과 BFS 너비우선탐색을 알고 구현할 수 있는지를 묻는 문제다. 입력 받은 값으로 인접행렬을 만든 후에 BFS를 Queue로 구현하고, DFS를 재귀함수로 구현하면 된다.... 백준 알고리즘BFSDFSBFS 프로그래머스 카드 짝 맞추기 python cpp 풀이법은 bfs와 dfs를 사용해서 모든 경우의 수를 다 탐색하는 것입니다. 예를 들어서 블록의 종류가 3개라면 이렇게 모든 경우를 다 탐색하는데 이 때 블록의 한쌍이 2개이기 때문에 1번째 블록을 먼저 지우고 2번째 블록을 지우는 경우와 2번째 블록을 지우고 1번째 블록을 지우는 경우까지 전부 생각해서 구현해주면 됩니다 그리고 블록간의 거리는 문제에서 주어진 조건으로 b... DFSalgorithm카카오 기출programmerscpppythonBFSGraphsimulationBFS 백준 1520, 내리막 길 - DFS, DP, 메모이제이션 dp[y][x]: 시작 지점 [0][0] -> [y][x] 지점으로 내리막 길로 가는 경로 개수 dp[y][x] = 0 이면, 해당 [y][x]로 내리막 길로 갈 수 없음 출력 값 h = dp[m-1][n-1] DFS + DP 현재 지점 [y][x]가 끝 지점이면, DFS 탐색 종료 dp[y][x]: [y][x] 지점 -> 끝 지점으로 내리막 길로 가는 경로 개수 현재 지점 [y][x]에 대... DPDFS알고리즘그래프 탐색depth first search메모이제이션dynamic programming동적 계획법백준 1520 내리막 길깊이 우선 탐색memoization코딩 테스트DFS <Baekjoon> #1520 Dyamic Programming, DFS_내리막 길 c++ 처음 칸에서 상하좌우 이웃한 곳을 탐색해서 제일 아래 칸으로 내려간다는 점에서 dfs를 이용해 풀어야 한다는 것을 알 수 있다 처음에 dfs만을 이용해 풀었다가 시간 초과가 났다. map의 크기가 최대 500*500이므로 완전탐색 dfs 방법으로 풀면 최악의 경우 4^(500*500)의 탐색을 해야한다 => DFS + DP 방법으로 해결한다 Initialize dp 동적 계획법 알고리즘을 만... DFSdynamicprogrammingbaekjoonalgorithmDFS <Programmers> Lv2 DFS_단체사진 찍기 c++ 💡Summary data 원소는 다섯 글자로 구성된 문자열 첫 번째 글자와 세 번째 글자는 프렌즈들의 알파벳 앞글자 두 번째 글자는 항상 ~ 네 번째 글자는 {=, <, >}중 하나이고 프렌즈들 간 거리가 같음, 미만, 초과를 의미 다섯 번째 글자는 0이상 6이하의 정수 문자형이며 각 거리를 의미한다 💡Idea 먼저 8명의 프렌즈들이 한 줄로 서는 경우의 수를 생각한다 경우의 수는 8!이며 ... programmersDFSkakaoalgorithmDFS [알고리즘/백준] 2210번 : 숫자판 점프(python) 모든 경우를 다 탐색해야 한다. 재귀를 이용하여 나오는 수들을 set에 넣으면 중복이 제거된다.... python알고리즘2210DFS숫자판 점프백준2210 [알고리즘/백준] 1743번 : 음식물 피하기(python) 간단한 bfs, dfs 문제이다 dfs bfs... pythonBFS알고리즘DFS1743백준음식물 피하기1743 [백준] 2468 안전영역(Java) 문제링크 문제분석 지도(N X N)에서 일정한 높이 이하의 모든지점 => 물에 잠긴다 영역 : 상하좌우로 연결되어 있다. 상하좌우로 연결되어 있다면 같은 영역이다. 위 경우 영역의 개수는 5개다. 어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수는? 주의! 아무 지역도 물에 잠기지 않을 수도 있다 => 물의 높이가 0인 경우도 생각해야 한다. 입력 N... DFSDFS [C++] 백준 1012 : 유기농 배추 상하좌우를 탐색하려면 dx, dy와 for문을 이용한 탐색이 필요하다. DFS에는 방문 체크가 필요하다. 초기화 시에 방문체크도 함께 모두 초기화 시켜주어야한다. cnt의 경우 인접 방문이 끝나면 cnt를 증가시키면 되기 때문에 DFS는 그냥 인접 노드를 방문하고 방문 체크만 해주면 된다.... 2022.03알고리즘DFScpp백준2022.03 백준 10026 적록색약 (Java) 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에... DFS백준골드 5DFS 이전 기사 보기
DFS(깊이우선탐색), BFS(너비우선탐색) 그래프와 트리 그래프(graph) 정점(node)과 그 정점을 연결하는 간선(edge)로 이루어진 자료구조의 일종 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것 트리 아주 간단한게만 말하자면, 그래프 중에서 방향성이 있는 비순환 그래프 ❗️그래프의 모든 정점 탐색 방법 그래프의 모든 정점 탐색 방법에도 여러 가지가 있다. 그중에서 가장 대표... DFSBFSBFS [BOJ] 5568 카드 놓기 아이디어 Level이 0일 때, 즉 아직 카드를 고르지 않았을 때 StringBuilder를 생성하고 sb에 고른 카드를 담도록 하였다. 이후 해당 노드 탐색을 종료하면 sb에 담은 카드를 삭제해 주었다.... DFSbaekjoon코딩테스트DFS 열쇠 (백준 9328번) 해당 문제를 까다롭게 만드는 조건 중 하나는 맵에서 새로운 열쇠를 획득할 수 있다는 것인데 열쇠를 새로 획득하면 그 순간 움직일 수 있는 맵의 범위가 바뀌게 된다. DFS로 문제를 해결하고자 했고 어떤 방법으로 구현해야 할지 내가 떠올렸던 방법은 열쇠를 줍는 순간 해당하는 문을 '.'(빈공간)으로 바꿔주는 방식이었다. (정확하게는 HashTable에 새로운 key를 등록한 후 다시 DFS 돌... 알고리즘DFSDFS [알고리즘] Java / 백준 / 텀 프로젝트 / 9466 [알고리즘] Java / 백준 / 텀 프로젝트 / 9466 문제 코드... baekjoonJavaDFSDFS 그래프 탐색의 기본, DFS와 BFS DFS는 깊이 우선 탐색. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조(혹은 재귀 함수) 이용 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 너비 우선 탐색... 그래프 탐색BFS알고리즘DFSBFS BOJ 14501.퇴사 입력 1 : N(날짜) 2 ~ N+1 : T_i(기간) P_i(금액) 주의사항 1) STL에 정의돼있는 함수 이름과 중복되지 않게 변수 선언하기 구현방식: DFS 기반 완전탐색 1) DAY 1 ~ DAY N까지 DFS(배열 접근 0 ~ N-1) 2) DFS 함수 -종료 조건 : 탐색하려는 day가 N이상인가?(배열 접근 고려) -재귀호출 ①탐색하는 day와 해당 상담기간의 합이 N이하일 때,... 삼성SW역량테스트기출알규리즘bojDFS백준DFS [algo] DFS, BFS란? 알고리즘BFSDFSBFS [백준] 2617 : 구슬 찾기 다시풀문제그래프DFS백준코딩테스트DFS DFS 피보나치 수열 (메모제이션) Array로 푼 피보나치수열 : Array로 푼것이 재귀함수보다 더 성능이 좋다. 재귀함수(DFS)로 푼 피보나치수열 개선된 피보나치 수열 : 메모제이션을 이용, 배열에 저장하고 이미 계산된 것은 재사용해서 처리속도가 높아진다!... 메모제이션피보나티 수열DFSDFS WEEK. 02 2022.04.08 TIL 먼저 들어 온 데이터가 먼저 나가는 형식(선입선출)의 자료구조로, 입구와 출구가 모두 뚫려 있는 터널과 같은 형태로 시각화 할 수 있음. DFS는 스택 자료구조(혹은 재귀 함수)를 이용하며, 구체적인 동작은 다음과 같음. 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리를 함. 2) 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리를 함. B... DFSBFSBFS [BOJ] 1967 : 트리의 지름 🔒 예제 🔧 풀이 🔑 답안 💡 개념... DFSalgorithmpythonGraphtreeDFS 백준 1260 DFS와 BFS JAVA 백준JavaDFS1260BFS1260 [백준 20058] 마법사 상어와 파이어스톰 (JAVA) 시뮬레이션, 배열 회전, dfs(bfs) 문제 부분 배열별로 배열을 시계방향 90도 회전 회전이 끝나면 인접 얼음이 3개 미만인 칸은 얼음 크기 -1 (4방 탐색) 최종적으로 배열의 전체 얼음 합과 최대 덩어리 크기(그래프 탐색) 배열 회전이 어려웠던 문제이다. 처음엔 다음과 같은 방식으로 회전시키려 했다. 코드를 보면 알겠지만 인덱스때문에 머리 아파 죽을 뻔 했다....🤔 배열 90도 회전... DFS알고리즘시뮬레이션배열 회전DFS <Baekjoon> #23290 Simulation, BFS, DFS, Backtracking_마법사 상어와 복제 c++ 따라서 물고기 번호 vector<int> fnum, scent_time을 저장하는 맵을 만들어준다 현재 시간을 Time 이라고 두고, 물고기가 상어에게 잡혀 사라질 때 scent_time=Time 을 넣어준다. 그러고 후에 두 번 전 연습에서 생긴 물고기의 냄새가 격자에서 사라질 때, Time-scent_time==2인 경우 scent_time=0으로 만들어주는 방법을 사용한다 1. star... DFSalgorithmBacktracking"삼성SW"simulationBFS"삼성SW" [백준] 2606번 : 바이러스 (파이썬) 문제 나의 답안 접근 방법 1번 컴퓨터부터 접근하므로 n+1개의 노드를 갖는 그래프를 생성한다. 이후 반복문을 통해 각 쌍을 연결하는 간선을 생성해준다. 방문한 노드는 1로 저장하고, 아닌 노드는 0으로 간주한다. dfs 함수에선 방문한 노드인지 판별해주고, 방문한 노드의 수를 반환해준다. 감염된 컴퓨터의 개수에선 1은 포함되지 않으므로 -1을 해준다.... 문제풀이_백준DFSDFS SWEA1861 정사각형 방 SWEA 알고리즘DFS2차원 배열BFS2차원 배열 [백준] 14501번 💻 C++ 기반 퇴사 ✔️ DP로도 풀 수 있지만, 문제가 간단하기 때문에 그냥 DFS로 돌려서 다 확인해도 됨... 코테깊이우선탐색시뮬레이션DFS백준DP코딩테스트DFS [백준] 21606 : 아침 산책 그래프BFSDFS백준코딩테스트BFS [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 문제 접근 방식 3가지 연산을 통해 나온 결과를 k로 가정할 때 N부터 k까지의 거리 최솟값을 구하기 위해 dp를 활용한다. dp에서의 점화식은 다음과 같다 또한 dp에 최소 거리가 갱신될 때 해당 수의 부모를 parent 배열에 저장하여 추후에 1부터 역탐색하여 1로 만드는 방법에 포함된 수를 얻는다. 코드... DPbaekjoonJavaDFSDFS BJ1260 DFS와 BFS DFS 깊이우선탐색과 BFS 너비우선탐색을 알고 구현할 수 있는지를 묻는 문제다. 입력 받은 값으로 인접행렬을 만든 후에 BFS를 Queue로 구현하고, DFS를 재귀함수로 구현하면 된다.... 백준 알고리즘BFSDFSBFS 프로그래머스 카드 짝 맞추기 python cpp 풀이법은 bfs와 dfs를 사용해서 모든 경우의 수를 다 탐색하는 것입니다. 예를 들어서 블록의 종류가 3개라면 이렇게 모든 경우를 다 탐색하는데 이 때 블록의 한쌍이 2개이기 때문에 1번째 블록을 먼저 지우고 2번째 블록을 지우는 경우와 2번째 블록을 지우고 1번째 블록을 지우는 경우까지 전부 생각해서 구현해주면 됩니다 그리고 블록간의 거리는 문제에서 주어진 조건으로 b... DFSalgorithm카카오 기출programmerscpppythonBFSGraphsimulationBFS 백준 1520, 내리막 길 - DFS, DP, 메모이제이션 dp[y][x]: 시작 지점 [0][0] -> [y][x] 지점으로 내리막 길로 가는 경로 개수 dp[y][x] = 0 이면, 해당 [y][x]로 내리막 길로 갈 수 없음 출력 값 h = dp[m-1][n-1] DFS + DP 현재 지점 [y][x]가 끝 지점이면, DFS 탐색 종료 dp[y][x]: [y][x] 지점 -> 끝 지점으로 내리막 길로 가는 경로 개수 현재 지점 [y][x]에 대... DPDFS알고리즘그래프 탐색depth first search메모이제이션dynamic programming동적 계획법백준 1520 내리막 길깊이 우선 탐색memoization코딩 테스트DFS <Baekjoon> #1520 Dyamic Programming, DFS_내리막 길 c++ 처음 칸에서 상하좌우 이웃한 곳을 탐색해서 제일 아래 칸으로 내려간다는 점에서 dfs를 이용해 풀어야 한다는 것을 알 수 있다 처음에 dfs만을 이용해 풀었다가 시간 초과가 났다. map의 크기가 최대 500*500이므로 완전탐색 dfs 방법으로 풀면 최악의 경우 4^(500*500)의 탐색을 해야한다 => DFS + DP 방법으로 해결한다 Initialize dp 동적 계획법 알고리즘을 만... DFSdynamicprogrammingbaekjoonalgorithmDFS <Programmers> Lv2 DFS_단체사진 찍기 c++ 💡Summary data 원소는 다섯 글자로 구성된 문자열 첫 번째 글자와 세 번째 글자는 프렌즈들의 알파벳 앞글자 두 번째 글자는 항상 ~ 네 번째 글자는 {=, <, >}중 하나이고 프렌즈들 간 거리가 같음, 미만, 초과를 의미 다섯 번째 글자는 0이상 6이하의 정수 문자형이며 각 거리를 의미한다 💡Idea 먼저 8명의 프렌즈들이 한 줄로 서는 경우의 수를 생각한다 경우의 수는 8!이며 ... programmersDFSkakaoalgorithmDFS [알고리즘/백준] 2210번 : 숫자판 점프(python) 모든 경우를 다 탐색해야 한다. 재귀를 이용하여 나오는 수들을 set에 넣으면 중복이 제거된다.... python알고리즘2210DFS숫자판 점프백준2210 [알고리즘/백준] 1743번 : 음식물 피하기(python) 간단한 bfs, dfs 문제이다 dfs bfs... pythonBFS알고리즘DFS1743백준음식물 피하기1743 [백준] 2468 안전영역(Java) 문제링크 문제분석 지도(N X N)에서 일정한 높이 이하의 모든지점 => 물에 잠긴다 영역 : 상하좌우로 연결되어 있다. 상하좌우로 연결되어 있다면 같은 영역이다. 위 경우 영역의 개수는 5개다. 어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수는? 주의! 아무 지역도 물에 잠기지 않을 수도 있다 => 물의 높이가 0인 경우도 생각해야 한다. 입력 N... DFSDFS [C++] 백준 1012 : 유기농 배추 상하좌우를 탐색하려면 dx, dy와 for문을 이용한 탐색이 필요하다. DFS에는 방문 체크가 필요하다. 초기화 시에 방문체크도 함께 모두 초기화 시켜주어야한다. cnt의 경우 인접 방문이 끝나면 cnt를 증가시키면 되기 때문에 DFS는 그냥 인접 노드를 방문하고 방문 체크만 해주면 된다.... 2022.03알고리즘DFScpp백준2022.03 백준 10026 적록색약 (Java) 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에... DFS백준골드 5DFS 이전 기사 보기