본문 바로가기

분류 전체보기279

[LeetCode] 70. Climbing Stairs 접근 처음 DFS로 풀이 시도 허나 도식화 후 Memoization이 가능함을 보고 DP로 솔루션 작성이 가능함을 판단 DP 방식 중 Top Down 으로 푸는 방법이 도저히 생각이 나지 않아 Bottom-up으로 고민 후 솔루션 작성 DP의 가장 교과서적인 문제 중 하나... 알고리즘 수업 때도 보았던 문제로 기억남 문제 링크 https://leetcode.com/problems/climbing-stairs/description/ 솔루션 class Solution: def climbStairs(self, n: int) -> int: DP = [1 for _ in range(n+1)] # Bottom-up for i in range(n-2, -1, -1): DP[i] = DP[i+1] + DP[i+2] .. 2023. 4. 8.
[LeetCode] 2370. Longest Ideal Subsequence 접근 O(N^2) 으로 처음에 시도했다가 TLE에 걸렸음 알파벳의 갯수와 k를 활용하여 이에 적합한 솔루션을 짜는 것이 핵심 문제를 제대로 이해한다면 올바른 솔루션을 짜는 것이 가능하니.. 문제를 정확히 이해할 것... 문제 링크 https://leetcode.com/problems/longest-ideal-subsequence/description/ 시도1(TLE) O(N^2) 으로 모두 비교하는 방법으로 처음 솔루션을 작성했습니다. 하지만 이 시도는 TLE에 걸려 통과하지 못했습니다. class Solution: def longestIdealString(self, s: str, k: int) -> int: s_length = len(s) DP = [1 for _ in range(s_length)] f.. 2023. 4. 8.
[React-Native/오픈소스활동] issue#35639 KeyboardAvoidingView 관련 버그 해결 일지 개요 React Native는 키보드를 사용할 수 있도록 KeyboardAvoidingView 컴포넌트를 제공. KeyboardAvoidingView가 레이아웃을 조정하는 과정에서 불필요한 추가 공간이 영구적으로 발생하는 문제. 문제 분석 문제가 되는 컴포넌트 라이브러리 파일 내 각 함수 디버깅 및 Inspector를 사용해서 문제 원인을 분석. 문제 분석 결과 _relativeKeyboardHeight 함수 관련 문제임 _onLayout 함수 내 event.nativeEvent.layout 관련 문제임 네이티브에서 가져오는 레이아웃 너비 값 event.nativeEvent.layout 에 의한 문제 event.nativeEvent.layout 값을 이해할 수 없음 네이티브에서 레이아웃 너비 값을 계산하.. 2023. 4. 7.
[LeetCode] 300. Longest Increasing Subsequence 접근 다이나믹 프로그래밍을 활용하여 문제를 풀어야 함 subsequence의 특징 중 앞의 원소에서 가능했던 갯수를 포함할 수 있다는 점을 캐치해야 함 문제 링크 https://leetcode.com/problems/longest-increasing-subsequence/description/ 솔루션 class Solution: def lengthOfLIS(self, nums: List[int]) -> int: nums_length = len(nums) dp = [1 for _ in range(nums_length)] for i in range(nums_length): for j in range(i): if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j]+1) return .. 2023. 4. 6.
[Python3] input 입력 받기 백준, 알고스팟 같은 알고리즘 사이트 솔루션을 작성할 때 테스트 케이스에 대한 입력을 감안하여 솔루션을 작성해야 합니다. 이 글에선 솔루션 작성 때 자주 사용하는 input 3가지 경우를 소개합니다. 1개의 값 입력받기 input 함수를 사용하여 1개의 값을 입력받을 수 있습니다. 입력 받은 값의 자료형은 문자열입니다. a = input() N개의 값 입력받기 input 함수 뒤에 split 함수를 작성하여 구현할 수 있습니다. b,c = input().split() d = input().split() 리스트로 입력받기 반복문을 활용하여 입력받는 값을 원하는 자료형으로 만들 수 있습니다. 아래 코드는 리스트로 값는 예제입니다. team = [] for i in range(3): b,c = input()... 2023. 4. 4.
[LeetCode] 11. Container With Most Water 접근 O(n) 시간복잡도 탐색을 통해 문제에서 요구하는 성능을 만족하는 것이 핵심 two pointers 기법을 사용해야 한다. 문제 링크 https://leetcode.com/problems/container-with-most-water/description/ O(n^2) 시도 TLE: 해당 솔루션은 오답입니다. class Solution: def maxArea(self, height: List[int]) -> int: answer = 0 left = 0 height_length = len(height) while left < height_length-1: for i in range(left+1, height_length): WIDTH, HEIGHT = i-left, min(height[left], h.. 2023. 4. 4.