인프런 80

[JAVA] 알고리즘 : DFS- 조합수(메모이제이션)

메모이제이션 사용하지 않는 방법 import java.util.Arrays; import java.util.Collections; import java.util.Scanner; class Main{ public int DFS(int n, int r){ if(n==r || r==0) return 1; else return DFS(n-1, r-1)+DFS(n-1, r); } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int r = kb.nextInt(); System.out.println(T.DFS(n,r)); } } 메모이제이션 사용한..

ALGORITHM 2022.09.23

[JAVA] 알고리즘 : DFS- 동전 교환

import java.util.Arrays; import java.util.Collections; import java.util.Scanner; class Main{ static int n, m, answer=Integer.MAX_VALUE; public void DFS(int L, int sum, Integer[] arr){ if(sum>m) return; // 합이 거슬러 줄 금액을 넘으면 리턴 if(L>=answer) return; // 탐색하고자하는 동전 수가 구해놓은 최소 동전 개수보다 크다면 리턴 if(sum == m){ // 합이 거슬러 줄 금액이 되었을 때 answer = Math.min(answer, L); // 최소 동전의 개수를 찾음 } else{ for(int i=0; i

ALGORITHM 2022.09.23

[JAVA] 알고리즘 : 그래프 최단거리(BFS)

import java.lang.reflect.Array; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main{ static int n, m; static ArrayList graph; // Integer를 저장하는 ArrayList를 저장하는 ArrayList static int[] ch, dis; public void BFS(int v){ Queue queue = new LinkedList(); ch[v]=1; // 체크배열 체크 dis[v]=0; // 출발점 0으로 queue.offer(v); while(!queue.isEmpty(..

ALGORITHM 2022.09.09