본문 바로가기

분류 전체보기77

[모던 자바 인 액션] CompletableFuture : 안정적인 비동기 프로그래밍 CompletableFuture: 안정적 비동기 프로그래밍 1. Future의 단순 활용 비동기 계산을 모델링하는 데 Future를 이용할 수 있으며, Future는 계산이 끝났을 때 결과에 접근할 수 있는 참조를 제공한다. 시간이 걸릴 수 있는 작업을 Future 내부로 설정하면 호출자 스레드가 결과를 기다리는 동안 다른 유용한 작업을 수행할 수 있다. Future는 저수준에 스레드에 비해 직관적으로 이해하기 쉽다는 장점이 있다. Future를 이용하려면 시간이 오래 걸리는 작업을 Callable 객체 내부로 감싼 다음에 ExecutorService에 제출해야 한다. ExecutorService executor = Executors.newCachedThreadPool(); Future future = .. 2023. 1. 20.
[LeetCode] Majority Element - (Kotlin) https://leetcode.com/problems/majority-element Majority Element - LeetCode Majority Element - Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array. Example 1: Input: nums = [3 leetcode.com 정수 배열에서 가장 많이 나타난 수를 찾는 문제이다. 언듯 보기에는 쉬워보이지만, 문제 조건에 시간복잡도 O.. 2023. 1. 20.
[LeetCode] Valid Palindrome - (Kotlin) https://leetcode.com/problems/valid-palindrome 주어진 문자열에서 숫자와 알파벳만 남겨 문자열을 뒤집어도 같은지 확인하는 문제이다 (펠린드롬). 처음에는 반복문을 통해 풀었지만, 정규식을 이용하니 코드가 훨씬 간결해졌다. 기존 코드 fun isPalindrome(ss: String): Boolean { val s = ss.uppercase().trim() var l = 0 var r = s.lastIndex while (l 0 && !isAlphanumeric(c2)) { c2 = s[--r] } if (isAlphanumeric(c1) && isAlphanumeric(c2) && c1 != c2) { return false } l++ r-- } return true .. 2023. 1. 16.
[LeetCode] Convert Sorted Array to Binary Search Tree (Kotlin) https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree Convert Sorted Array to Binary Search Tree - LeetCode Convert Sorted Array to Binary Search Tree - Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree. Example 1: [https://assets.leetcode.com/uploads/2021/02/18/btree1.jpg] Input: leetcode.com 오름차순 .. 2023. 1. 15.