본문 바로가기

깊이우선탐색3

모음사전(Lv.2) 문제 설명 입출력 예시 요약 A, E, I, O, U 모음을 가지고 만들 수 있는 1~5 자리의 모든 조합(경우의 수) 구하기 풀이 접근 방식 1. 순서 파악 → A, AA, AAA, AAAA, AAAAA, AAAAE, AAAAI, AAAAO, AAAAU, AAAE, AAAEA, AAAEE, AAAEI, AAAEO, ... → dfs로 length가 5가 되면 return 2. dfs 메소드 구현 → 재귀 방식을 통한 모든 조합을 구하는 dfs 메소드 구현 코드리뷰 import java.util.*; public class Solution { String[] arr = {"A", "E", "I", "O", "U"}; List list = new ArrayList(); public void dfs(Stri.. 2024. 3. 25.
바이러스 문제 설명 입출력 예시 요약 1번 컴퓨터와 직.간접적으로 연결되어 있는 컴퓨터의 개수 구하기 풀이 접근 방식 1. 연결되어 있는 컴퓨터들을 이차원 배열로 표시 → graph[row][col], graph[col][row] 모두 true로 연결됨을 표시 2. 방문하지 않은 컴퓨터(노드) 확인 후 방문 → 재귀함수로 dfs 실행 코드리뷰 import java.util.*; public class Main { static int N, M; static int count = 0; static boolean[][] graph; static boolean[] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N.. 2024. 3. 24.
타겟 넘버(Lv.2) 문제 설명 입출력 예시 요약 끝까지 더하거나 빼서 target을 완성할 수 있는 경우의 수 구하기 풀이 접근 방식 1. dfs를 통한 모든 경우의 수 구하기 → 재귀함수로 구현, length의 끝까지 도달했다면 return(exit) → 더하는 동작 실행 후 빼는 동작 실행 코드 리뷰 import java.util.*; class Solution { int[] nums; int targetNum; int count = 0; public void dfs(int i, int sum) { if(i == nums.length) {// 탈출조건은 length까지 도달했을 때가 된다. if(sum == targetNum) {// 마지막까지 더하거나 뺏을 때 target과 같은지 비교 count++; } return.. 2024. 3. 22.