코딩테스트4 DFS와 BFS 알고리즘 완벽 가이드!! [탐색 알고리즘의 기본부터 예제 코드까지] 포스팅 하나로 탐색 알고리즘은 그래프를 순회하거나 특정 조건을 만족하는 경로를 찾는 데 자주 사용된다. 특히 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)은 가장 기초적이면서도 중요한 탐색 기법으로, 많은 문제 해결의 기반이 된다. 이번 포스팅 에서는 DFS와 BFS의 개념, 작동 방식, 예제 코드, 그리고 두 알고리즘의 차이점으로 작성해보려 한다. DFS (Depth-First Search: 깊이 우선 탐색)DFS란?깊이 우선 탐색은 시작 노드에서 한 방향으로 깊게 들어가며 탐색을 진행하는 방식이다. 한 경로를 끝까지 탐색한 후, 더 이상 갈 곳이 없을 때 다른 경로로 이동한다.주요 특징:스택 자료구조(혹은 재귀 호출)를 사용한다.그래프의 경로가 깊은 곳까지 먼저 탐색된다.순환 구조나 무한 루프를 방지하.. Algorithm/Java 2025. 1. 4. ConvertListtoObject 2차원 배열을 HashMap으로 리턴하기 Q: 2차원 배열(배열이 요소로 입력됨.)을 입력 받아 각 배열을 이용해 만든 HashMap을 리턴하기. /*입력: arr[i]는 stringarr[i].length는 0 또는 2출력: HashMap으로 리턴.주의사항: 중복되는 키의 경우 초기의 값을 사용빈 배열을 입력받은 경우 빈 배열 리턴.arr[i]의 길이가 0 인경우 무시하기.*/ A:public class min { public HashMap convertListToHashMap(String[][] arr) { // 새로운 해시맵을 생성하기. HashMap map = new HashMap(); // 빈 배열을 입력받은경우 빈 해시맵을 리턴 // if(arr.length == 0) return new HashMap(); if.. Algorithm/Java 2023. 1. 20. 문자열 첫 글자 대문자로 리턴하기 [letterCapitalize] // .split() .substring() .join() Q : 문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자가 되도록 리턴하기. 주의사항String으로 리턴 시키세요.연속된 공백이 있을 수 있다.단어는 공백으로 구분한다.빈 문자로만 이루어진 문자열 입력 받으면 빈 문자열 리턴하기. 코드 작성해보기public String letterCapitalize(String str) {// 빈 문자열을 입력받은 경우 빈문자열 리턴.// if(str.isEmpty()) return ""; if(str.length() == 0 ) return ""; String[] words = str.split(" "); // split을 활용해서 공백을 기준으로 잘라 배열로 만들기. Stirng result = ""; // 출력할 결과값에는 "" .. Algorithm/Java 2023. 1. 19. Tree 구조 (트리 구조) 자료구조 / 트리 순회 방법 세가지 전위, 중위, 후위 순회 알고리즘 문제 Tree(트리) 구조란? 자료구조 Tree는 이름 그대로 나무를 거꾸로 뒤집은 형태를 가지고 있습니다. 트리구조는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조입니다. 데이터를 순차적으로 나열시킨 선형 구조가 아니라, 하나의 데이터 아래 여러개의 데이터가 존재할 수 있는 비선형 구조로 되어있습니다. 또한 트리 구조는 계층적으로 표현이 되고, 아래로만 뻗어가기에 사이클이 따로 존재하지 않습니다. 트리(Tree) 구조의 기본적 개념 1. 트리는 노드로 이루어진 구조입니다. (각각의 데이터를 노드라함.) 2. 루트 노드는 0개 이상의 자식 노드를 가지고 있습니다 (현재 이미지에서는 A가 루트.) 3. 그 자식 노드 또한 0개 이상의 자식 노드를 가지고 있고, 이는 반복적으로 정의됩니다. (아래로만 뻗.. JAVA 2023. 1. 18. 이전 1 다음