DFS2 Level2 - 예상 대진표 레벨 2 부터는 단순 알고리즘이 아니라 문제를 어떻게 해결해야하는지 찾는데에 시간이 많이 걸리는거 같다. 대진표가 있다면 A랑 B랑 몇번째에 만날지 예측해주라는 문제 A = 1 B = 2 라면 1번째에 바로 만나는거라 1을 리턴 A = 1 B = 4 라면 2번째에 만나는 거라 2를 리턴 A = 4 B = 5 라면 최종 3번째 니깐 3을 리턴 무조건 A와 B는 이긴다는 규칙이 있으니깐 이런식으로 이긴다면 계속 좁혀지는걸 확인 뭔가 DP를 사용해야 하나 하다가 그냥 DFS각이 보여서 DFS로 접근 (찾게 된 규칙) + 둘의 차이가 1이면 리턴 && A가 홀수이면 리턴 A = 2 , B = 4 라면 , 위의 식이 만족이 안되니 다시 위로 승격, 그럼 2는 1이되고 4는 2가 되며 위의 조건이 만족하고 2를 리.. 2023. 5. 22. 인프런 JAVA 알고리즘 정리(DFS, BFS 기초 1~6번) 1. 재귀함수 (스택프레임) public static void DFS(int n){ if(n==0){ }else { DFS(n-1); System.out.println(n); } } 2. 10진수를 2진수로 (재귀사용) public static void DFS(int n){ if(n==0){ }else { DFS(n/2); System.out.print(n%2); } } 3. 팩토리얼 public static int DFS(int n){ if(n==0){ return 1; }else { return n*DFS(n-1); } } 4. 피보나치 ( 재귀 + 메모리제이션 ) public class Main { static int[] arr; public static void main(String[] args).. 2023. 5. 1. 이전 1 다음