2024/12 27

(간단한 코드)리트코드 228. Summary Ranges

개인적으로 정말로 많이 마음이 꺾였던 문제였다.  해답을 보면서 "와... 이렇게 생각을 할 수 있구나"라는 생각을 했지만, 기본적으로 나는 while문을 정말로 싫어하고 잘 못 쓰기 때문에 가급적이면 for문으로 해결하고 싶었지만, 잘 안되었다.class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: ans = [] i = 0 while i {nums[i]}') else: ans.append(str(nums[i])) i += 1 # 여기의 i는 안에 있는 while문이 끝났을 때 다음 i의 위치에 가는 역..

(간단한 코드)리트코드 14. Longest Common Prefix

처음에는 prefix가 뭔지 몰라서 오해해서 문제를 풀려고 했었다. 그래서 딕셔너리를 통해서 접근을 하려고 했었는데 이런 식으로 딕셔너리에 있는 숫자를 통해서 정리해서 출력을 하려고 했지만, 다음과 같은 에러가 나타났다. 여기서 prefix가 접두사 라는 것을 검색하고, "붙어 있어야 한다"라는 것을 알았다.class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: strs = sorted(strs,key=len) short_str = strs.pop(0) cnt = 0 for i in range(len(short_str)): for ..

(간단한 코드)리트코드 121. Best Time to Buy and Sell Stock

주식과 같이 매 순서마다 바뀌는 가격에 따라 최대의 이윤을 남기는 문제이다.  여기서 나는 우선 "가장 낮은 가격대를 기준으로 고르면 금방이겠네!"라고 생각을 했지만, 아니었다. 이 와 같은 경우 가장 낮은 수는 1이지만, 이윤은 남길 수 있었다.  그렇다면, 우리는 두가지를 고려해야 한다, 하나는 언제 살지를 의미하는 "최소값"과 판 후의 "최대 이윤"이다.class Solution: def maxProfit(self, prices: List[int]) -> int: m, M = float('inf'), 0 for price in prices: if price M: M = profit return M 우선 최소값..

(간단한 코드)리트코드 392. Is Subsequence

이번 문제는 s안에 있는 "모든 문자"가 t안에 "같은 순서"로 나열되어 있는지 확인하는 과정이다. 처음에는 인덱스를 활용해 접근을 하려고 했다.class Solution: def isSubsequence(self, s: str, t: str) -> bool: if len(s) > len(t): return False if s == '': return True ind = [] for i in range(len(s)): if s[i] not in t: return False else: ind.append(t.index(s[i])) new_ind =..

(간단한 코드)리트코드 1768. Merge Strings Alternately

두개의 문자열이 주어지고, 이를 순서대로 섞는 코드이다.  여기서 주의해야 할 점은 두 문자열의 길이가 같지 않아, 간단한 for문으로는 해결 할 수 없다는 점일 것이다.  class Solution: def mergeAlternately(self, word1: str, word2: str) -> str: l1, l2 = len(word1), len(word2) if l1 > l2: n = l1-l2 word2 += ' '*n elif l2 > l1: n = l2-l1 word1 += ' '*n ans = '' for i in range(len(..

(간단한 코드)리트코드 2239. Find Closest Number to Zero

이 문제는 0에 제일 가까운 숫자를 고르는 것이고, 만약에 0과 동일한 차이가 있는 숫자가 2개이면, 더 큰 쪽을 고르는 문제다.  문제 자체는 쉬워보이지만, 이것을 처음 접했을 때는 어떻게 접근해야 하는 막막함이 있었다.  class Solution: def findClosestNumber(self, nums: List[int]) -> int: min=float('inf') for num in nums: a = abs(min) if abs(num) min: min=num return min 이건 내가 짠 코드가 아니다, 나도 그냥 타인의 코드를 참조 했을 뿐이다.  우선 처음에 왜min=..