
DFS 기초 - 부분집합
2023. 1. 25. 16:11
알고리즘(인프런)/7. DFS, BFS 기초
{1,2,3} 라는 배열이 있을때 먼저 1을 사용 한다 / 안한다로 나눌수 있다 1을 사용 한다 -> 2를 사용 한다/안한다 1을사용 안한다 -> 2를 사용 한다/안한다 이렇게 트리로 나아갈 수 있다. 전체소스 package test; public class test { static int[] dice = { 1,2,3,4,5 }; static int[] ch = new int[6]; public static void dfs(int LV) { if(LV==5) { for(int i=0; i

8-5. 동전교환 (DFS)
2023. 1. 5. 23:47
알고리즘(인프런)/8. DFS, BFS 활용
문제 순서도 큰수부터 하는게 경우의 수를 줄일 수 있음으로 역순으로 트리를 타게했다. keypoint : 동전의 수를 구했을때, 그보다 큰 동전의 수를 가지고 있는 메소드(재귀)를 더 이상 진행할 필요가 없다. 이부분 에서 시간의 차이가 매우 크게 난다. 소스 package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; //백준 public class Main { static int[] array; static int size; static int money; static..

8-3. 최대점수 구하기(DFS)
2023. 1. 4. 17:11
알고리즘(인프런)/8. DFS, BFS 활용
문제 package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; //백준 public class Main { static int[] array; static int[] visited; static int size; static int total; static int re = Integer.MIN_VALUE; public static void dfs(int point, int time, int sum) { int ch = ..

8-2. 바둑이 승차(DFS)
2023. 1. 4. 16:49
알고리즘(인프런)/8. DFS, BFS 활용
문제 이진트리 탐색 순서 sum(81) = sum[0] + array[0] = 0 + 81 sum(139) = sum[81] + array[1] = 81 + 58 sum(181) = sum[139] + array[2] = 139 + 42 sum(214) = sum[181] + array[3] = 181 + 33 sum(275) = sum[214] + array[4] = 214 + 61 sum(275) = sum[275] + array[5] = 275 + 0 sum(214) = sum[214] + array[5] = 214 + 0 sum(242) = sum[181] + array[4] = 181 + 61 sum(242) = sum[242] + array[5] = 242 + 0 sum(181) = sum[1..

8-1. 합이 같은 부분 집합 (DFS)
2023. 1. 2. 23:26
알고리즘(인프런)/8. DFS, BFS 활용
재귀를 짜기 전에 탐색 과정에 대해서 미리 순서도를 파악하는게 중요하다고 느껴졌다. 바로 코딩을 하면서 찍어보니 원하는 값이 제대로 나오지 않았다. 숫자나 변수 위치를 바꿔가서 찍어봤지만 이렇게 맞추더라도 맞춘게 아니라고 생각했다. 강의를 다시 보니 처음에 계획한 순서도로 코딩을 했다. L을 내려가면서 추가할 것인지 말것인지 이진트리로 내려갔다. 그부분의 코딩도 간단했다. dfs(point+1, sum + array[point]); dfs(point+1, sum ); 재귀가 아직 많이 부족하다고 느껴졌다.. 문제 전체 소스 package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..

7-8. 송아지 찾기 (BFS)
2022. 12. 31. 01:09
알고리즘(인프런)/7. DFS, BFS 기초
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; 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 StringTokenizer(br.readLine(), " "..

String
2022. 12. 23. 10:03
알고리즘(인프런)/1. String
String 소문자로 변경하기 String str = (sc.next()).toLowerCase(); char형태에 0번째 한개만 넣기 char c = sc.next().charAt(0); char형태 소문자(대문자)로 변경하기 c=Character.toLowerCase(c); charAt으로 자른 문자 몇번째를 가져올것인지 for(int i=0; i10진수->문자 2진수-> 10진수 Integer.parseInt("1000011", 2) 2진수-> 10진수-> 문자 (char)Integer.parseInt("1000011", 2) for each 사용하기 String[] numbers = {"one", "two", "three"}; for(String number: numbers) { System.ou..