![[DFS] 백준 11724번 : 연결 요소의 개수 - Java](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLccO4%2FbtsN6oqZKVY%2FelwJnlTIqxjoEJbemFY9P1%2Fimg.png)
https://www.acmicpc.net/problem/2606이번 문제는 위의 문제와 거의 같다. (풀이 참고 : https://kimjunhyun.tistory.com/134) ✅ 문제https://www.acmicpc.net/problem/11724 접근방법1. 연결된 요소의 개수 -> DFS / BFS2. 서로 연결되었다는 정보를 어떻게 하나의 자료구조로 통합할까?3. 이미 방문한 지점을 다시 방문하지 않으려면 어떤 자료구조를 사용해야할까?4. 어디에서 DFS를 시작할 것인가? 🔑 풀이import java.io.*;import java.util.*;// DFSpublic class Main { final static int MAX = 1000 + 10; // N이 가질 수 있는 최댓값 ..
![[DFS] 백준 2606번 : 바이러스 - Java](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcse3Zs%2FbtsN4JIlnUG%2FJVNSsM4AOcuAKFdhRpz9y1%2Fimg.png)
https://www.acmicpc.net/problem/2606✅ 문제 재귀함수 Depth🔑 풀이import java.io.*;import java.util.*;public class Main { static boolean[][] graph; static boolean[] visited; // 재방문 방지 배열 static int N, M; static int answer; public static void dfs(int idx) { visited[idx] = true; answer++; // dfs 호출되는 횟수만큼 몇개의 컴퓨터가 연결되어있는지 의미 for (int i = 1; i 참고https://www.youtube.com..
![[투 포인터] 백준 1764번 듣보잡 - Java](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVA2Uz%2FbtsN3Mlolj9%2ForNVDcJmoDbHUhrktbq32K%2Fimg.png)
https://www.acmicpc.net/problem/1764✅ 문제듣도 보도 못한 사람 수 N명보도 못한 사람 수 M명두 명단 모두에 있는 사람을 찾아 사전 순 정렬 후 출력 투포인터를 사용하려면 정렬 필수!🔑 풀이import java.io.*;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new Stri..
![[이분 탐색] 백준 1920번 : 수 찾기 - Java](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaFf3j%2FbtsNxwddhU3%2FyfzsSQbieUCiohCHQ4SiDK%2Fimg.png)
✅ 문제https://www.acmicpc.net/problem/1920✅ 분류이분탐색✅ 공부한 내용N의 최대범위가 10만이므로, 단순 반복문으로는 풀 수 없다.이분탐색을 적용하면 O(nlogn) 시간 복잡도로 해결할 수 있다. 이분 탐색은 데이터가 정렬되어있는 상태에서 원하는 값을 찾아내는 알고리즘이다.대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는다.[이진 탐색 과정] - 오름차순으로 정렬된 데이터인 경우 (내림차순이면 조건 반대)현재 데이터셋의 중앙값을 선택한다중앙값 > 타깃데이터일때 중앙값 기준으로 왼쪽 데이터셋을 선택한다.중앙값 과정 1~3을 반복하다가 중앙값 == 타깃 데이터일 때 탐색을 종료한다.✅ 풀이import java.util.*;import..