[LeetCode/Kotlin]Easy - 404. Sum of Left Leaves
·
LeetCode/Kotlin | Easy
[LeetCode/Kotlin]Easy - 404. Sum of Left Leaves Sum of Left Leaves - LeetCode Can you solve this real interview question? Sum of Left Leaves - Given the root of a binary tree, return the sum of all left leaves. A leaf is a node with no children. A left leaf is a leaf that is the left child of another node. Example 1: [https://ass leetcode.com 문제 Given the root of a binary tree, return the sum of..
[Java/Kotlin]Iterator
·
프로그래밍 언어/Java 기초
Iterator 인터페이스는 컬렉션의 요소를 순회하고 선택적으로 요소를 제거할 수 있는 메소드를 정의하는 자바의 인터페이스입니다. 이 인터페이스는 자바 컬렉션 프레임워크의 일부로 제공되며, 다양한 자료 구조를 효율적으로 순회하고 조작하는 데 사용됩니다. Iterator 인터페이스는 hasNext(), next(), remove() 세 가지 메소드를 정의합니다. hasNext(): 이 메소드는 다음 요소가 있으면 true를 반환하고, 없으면 false를 반환합니다. next(): 이 메소드는 다음 요소를 반환합니다. remove(): 이 메소드는 마지막으로 반환된 요소를 제거합니다. next()를 호출한 후에만 호출 가능합니다. Iterator 인터페이스는 자바의 ArrayList, LinkedList, ..
[LeetCode/Kotlin]Easy - 121. Best Time to Buy and Sell Stock
·
LeetCode/Kotlin | Easy
Best Time to Buy and Sell Stock - LeetCode Can you solve this real interview question? Best Time to Buy and Sell Stock - You are given an array prices where prices[i] is the price of a given stock on the ith day. You want to maximize your profit by choosing a single day to buy one stock and choosin leetcode.com 문제 You are given an array prices where prices[i] is the price of a given stock on the..
[Android/Async]RxJava에서 Throttle과 Debounce
·
Android/도구 및 라이브러리
RxJava에서 Throttle과 Debounce는 각각 데이터 스트림에서 지정된 시간 동안의 버퍼링된 이벤트를 처리하는 방법입니다. 이 두 연산자는 모두 데이터 스트림에서 지정된 간격 이상의 이벤트를 발생시키지 않도록 제어하며, 너무 많은 이벤트가 처리되어 성능 문제가 발생하는 것을 방지할 수 있습니다. Throttle은 이벤트를 지정된 시간 동안 버퍼링한 다음, 시간이 지난 후에 가장 최근의 이벤트를 처리합니다. 예를 들어, 1초 동안 Throttle을 적용하면 1초 동안 이벤트를 버퍼링하고, 1초 이후에 발생한 가장 최근의 이벤트를 처리합니다. 이를 통해 일정 시간 동안 반복적으로 발생하는 이벤트를 제한하고, 지정된 시간 동안 가장 최근의 이벤트만 처리할 수 있습니다. Debounce는 이벤트를 버..
[알고리즘/Kotlin]플로이드-와샬 (Floyd-Warshall)
·
개발/알고리즘
플로이드 와샬(Floyd-Warshall) 알고리즘은 모든 정점에서 모든 다른 정점까지의 최단 경로를 구하는 알고리즘 입니다. 이 알고리즘은 다익스트라(Dijkstra) 알고리즘과는 달리 음의 가중치를 가진 그래프에서도 사용할 수 있습니다. 이 알고리즘은 동적 계획법을 사용하여 구현되며, 시간 복잡도는 O(n^3)입니다. 알고리즘의 동작 방식은 아래와 같습니다. 그래프의 인접 행렬을 만듭니다. 3중 반복문을 이용하여 모든점을 순회합니다. i에서 j로 가는 최단 거리를 d[i][j]라고 할 때, d[i][j] = min(d[i][j], d[i][k] + d[k][j])의 점화식을 이용하여 d[i][j]를 갱신합니다. 이 때, k는 1부터 n까지의 정점입니다. 이제 Kotlin으로 플로이드 와샬 알고리즘을 ..
뿌꾸 빵
개발새발 안드로그