전체 글 (55) 썸네일형 리스트형 Leetcode 557. Reverse Words in a String III 오늘의 문제는 String을 뒤집는 것인데, 단어들 (공백기준) 사이에는 순서를 유지하는 것이다. class Solution: def reverseWords(self, s: str) -> str: answer = "" s = s.split(' ') for word in s: answer += word[::-1] answer += " " return answer[:-1] for문에서 마지막 word에서, answer에 공백이 하나 더 들어가게 된다. 이를 처리해주기 위해 return 문에서 [:-1]로 공백을 제외한 나머지 문자열을 return하게 한다. 사실 처음에 마지막 space에 대한 생각을 해주지 않아 Wrong Answer을 받았다...흑 그래도 금방 코드가 뚝딱뚝딱 짜져서 (?) 기분이 좋다!.. Leetcode 167. Two Sum II - Input array is sorted 요즘 리트코드의 원샷원킬에 재미가 들렸다. 물론 난이도가 Easy라서 가능한거지만^^ 오늘 문제도 무난했다. 두개의 포인터를 써서 Binary search와 같은방법으로 접근했더니,,, Test case 돌리기도 전에 잘못 눌러서 Submit했는데 Accept되었다. 기분이 좋다 힛 class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: # Two pointers n = len(numbers) low = 0 high = n - 1 while low target: high -= 1 else: # sums == target return [low + 1, high + 1] return [low + 1, high + 1] 문.. Leetcode 283. Move Zeroes 오늘은 이미 깃커밋 했지만,,, 리트코드의 의리를 저버리지 않기 위해서 (?) 했다. 난이도는 Easy라서 진짜 Easy하다. class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ for num in nums: if num == 0: nums.remove(num) nums.append(0) in-place로 해야한다길래 파이썬의 좋은 기능이라고 할 수 있는 remove, append를 사용하였다. 코드는 보는 바와 같이 간단하다. Time Complexity : O(n) Success!했는데... 하위 95%란 말이잖아 엉엉 그래서 py.. Leetcode 189. Rotate Array 오늘 코드. 매우 간결하다! class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ n = len(nums) k = k % n nums[:] = nums[n-k:] + nums[:n-k] In-place로 작성해야하므로 nums에 넣어주었다. in-place는 메모리를 더 사용하지 않고, 이미 주어진 메모리 안에서 문제를 해결해나가는 방식이라고 할 수 있다. 여기서 주의할 점은 두개이다. 1. k = k % n : 이 경우, 처음에는 Wrong answer이 나왔다. 알고보니 nums의 길이는 3인데 k는 5인 경우가 있더라... .. Leetcode 977. Squares of a Sorted Array - Two Pointers 오늘도 어김없이 리트코드! 오늘은 Two Pointers 문제에 대하여 다루어보았다. Two Pointers 주제에 있길래 원하시는대로 Two Pointers를 설정하였다. class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: n = len(nums) answer = [0] * n # Two pointers low = 0 high = n - 1 for i in range(n - 1, -1, -1): # 반대로 순회하면서 비교 if abs(nums[low]) > abs(nums[high]): answer[i] = nums[low] * nums[low] low += 1 else: answer[i] = nums[high] * nums[h.. Leetcode 35. Search Insert Position - Binary Search 이 문제도 이진탐색을 이용하면 쉽게! 해결된다. 3분컷 class Solution: def searchInsert(self, nums: List[int], target: int) -> int: # Binary Search low = 0 high = len(nums) - 1 while low target: high = mid - 1 return low 성공이다. 오늘도 한 개 했다. 뿌듯 Leetcode 278. First Bad Version - Binary Search Tree # The isBadVersion API is already defined for you. # @param version, an integer # @return an integer # def isBadVersion(version): class Solution: def firstBadVersion(self, n): """ :type n: int :rtype: int """ low = 1 high = n while (low true high = mid - 1 else: low = mid + 1 return low 10/2, 평소 코딩 연습을 하던 Leetcode에서, 매일 푸는 문제에서 이용되는 자료구조/알고리즘 이론을 기록하기로. Number : 278 Problem : First Bad Version L.. 스물셋의 중간에서 회고 정신없이 살다보니 어느덧 8월이 되었다. 올해 그동안 했던 많은 것이 결실을 맺었다. 대회에서 수상도 하고, 가고싶었던 학교에서 연구인턴도 하고, 원하는 회사에서 그토록 해보고 싶었던 프로젝트도 하는 중이다. 오늘 백신을 맞아서 하루 쉬는데, 내가 무엇을 해야할 지 모르고 방황하는게 보였다. 결국 저녁이 될 때 까지 아 내가 진짜로 하고싶은 것은 무엇이었을까? 나는 무엇을 위해 이토록 열심히 살고 있는 것일까? 무언가를 해야한다, 성장해야한다, 나아가야한다, 라는 생각이 나를 사로잡던 요즘 내 안의 어딘가에서 균형을 잃은 것 같다. 무엇을 위해 살아가는가 이전 1 ··· 3 4 5 6 7 다음