Algorithm

김성렬 교수님의 알고리즘 수업 리뷰 + 알고리즘 문제풀이
순열 N : 자연수 R : 뽑을 갯수 nPr 구하기! 자연수 import org.junit.jupiter.api.Test import java.util.* class Permutation { private var N: Int = 0 private var R: Int = 0 private fun dfs(curNum: Int, visited: BooleanArray, depth: Int, strBuilder: StringBuilder, answerList: LinkedList) { strBuilder.append(curNum) if (depth == R) { answerList.add(strBuilder.toString().toInt()) strBuilder.setLength(strBuilder.length..
재귀 하나의 함수에서 자기가 자신을 계속 호출하는 알고리즘으로 반드시 종료 조건 (Base condition) 을 갖는다.
🔒 Problem 🔑 BFS approach Create two queue with bread-first search to all nodes. To handle null case, if null, don't add left & right nodes to queue BFS Code (Kotlin) import java.util.LinkedList import java.util.Queue class TreeNode(var `val`: Int) { var left: TreeNode? = null var right: TreeNode? = null } class SameTree { fun isSameTree(p: TreeNode?, q: TreeNode?): Boolean { // 1. queue 2개 초기화 및..
Breadth First Search
When to use Find targetValue in sorted array Algorithm Recursive approach 1. StartIndex = 0 (lower bound), endIndex = arr.length (upper bound), midIndex = starIndex + endIndex / 2, 2. Recursion until (startIndex > endIndex (Not found)) . arr[midIndex] == targetValue ? => return midIndex .arr[midIndex] > targetValue ? => endIndex = mid – 1 (targetValue on left side) .arr[midIndex] < targetValue ?..
🔒 문제 💭 생각의 흐름 라이브러리에서 CircularQueue 를 제공하거나 이미 구현해놓은 코드가 있다면 CircularQueue 안에서 iterator를 쓰면 좋겠다고 생각은 했지만 java, kotlin 에서 CircularQueue를 제공하지 않으므로 그냥 사이즈의 최대 크기를 넘어가는 시점에는 mod(%) 연산으로 index를 조정하는 방식을 택했다. 출력 결과에 '
M_Falcon
'Algorithm' 카테고리의 글 목록 (5 Page)