본문 바로가기

Algorithm50

[LeetCode] Longest Substring Without Repeating Characters - (Kotlin) https://leetcode.com/problems/longest-substring-without-repeating-characters/description 처음 방법은 Map을 이용해서 인덱스를 관리하면서 해결했다. 중복키가 나오면 맵을 지우고 인덱스를 처음 중복된 곳 바로 앞으로 가도록 했다. var max = 0 var i = 0 val map = hashMapOf() while (i < s.length) { if (map.containsKey(s[i])) { i = map[s[i]]!! + 1 max = max(map.size, max) map.clear() } map[s[i]] = i++ } max = max(map.size, max) return max 정답은 맞았지만, Solutions를 .. 2023. 3. 1.
[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.