본문 바로가기

Python20

Leetcode 200. Number of Islands 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Number of Islands 등급: Medium 내용: '1'(땅)과 '0'(물)의 지도를 나타내는 m x n 2D 이진 grid가 주어지면 섬의 수를 반환합니다. 섬 (1로 형성)은 물(0)로 둘러싸여 있으며 인접한 토지를 수평 또는 수직으로 연결하여 형성됩니다. grid의 네 모서리는 모두 물로 둘러싸여 있다고 가정할 수 있습니다. 도저히 안 풀려서 discussion보고 거의 베낀 푼 코드 class Solution(object): def numIslands(self, grid): if n.. 2022. 2. 28.
Leetcode 171. Excel Sheet Column Number 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: 171. Excel Sheet Column Number 등급: Easy 내용: Excel Sheet Column Number, AAA, A, BC, 이런 column을 숫자로 변환해서 반환해라. class Solution(object): def titleToNumber(self, columnTitle): # ord(A) =65 # add up to the answer column_number = 0 # go through the string i = 1 for letter in columnTitle[.. 2022. 2. 23.
Leetcode 27. Remove Element Python 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Remove Element 등급: Easy 내용: class Solution(object): def removeElement(self, nums, val): if not nums: return 0 while val in nums: nums.remove(val) return len(nums) 약간의 편법이 들어간 코드이다. 원래는, 그 element를 없애고 난 뒤의 남은 것들만 list가 있다면 그 남아있는 숫자를 줘야한다. 아, 그 없애는 것이 아닌 원래 다른 값으로 교체?를 하는 것이다. 그런데.. 2022. 2. 11.
Leetcode 14. Longest Prefix 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Longest Prefix 등급: EASY class Solution(object): def longestCommonPrefix(self, strs): if len(strs) == 1: return strs[0] #find the shortest string length = len(strs[0]) shortest = strs[0] for string in strs: if len(string) < length: length = len(string) shortest = string # iterate t.. 2022. 2. 9.
Leetcode: 13. Roman to Integer - Python 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Roman to Integer 등급: Easy 내용: 로마 숫자를 일반 숫자로 바꾼다. class Solution(object): def romanToInt(self, s): answer = 0 i = 0 s = s[::-1] while i < len(s): if s[i] == 'I': answer += 1 i += 1 continue if s[i] == 'V': answer +=5 i += 1 if i < len(s) and s[i] == 'I': answer -= 1 i += 1 continue.. 2022. 2. 8.
Leetcode 9. PalinDrome Number (대칭수) Python 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Palindrome Number 등급: Easy 내용: 11, 151, 121, 1001 같은 대칭수인지를 확인하라. class Solution(object): def isPalindrome(self, x): if x == 0: return True if x < 0: return False x = str(x) length = len(x) if length 2022. 2. 6.
Leetcode Climbing Stairs Python 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Climbing Stairs 등급: Easy 내용: n의 계단을 1개 또는 2개씩 올라가는데의, 총 몇 가지 독특한 방법으로 n 계단을 올라갈 수 있는가? class Solution(object): def climbStairs(self, n): cache = {} def climbStairs_2(n): if n in cache: return cache[n] if n 2022. 2. 5.
Leetcode Pow(x,n) 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Pow(x,n) 등급: Medium 내용: x ^ n을 구하라. class Solution(object): def myPow(self, x, n): if x == 0: return x if n == 0: return 1 def helper(x, n, mult): if n == 0: return mult # this is a tail recursion because the final instruction is a recursive call. return helper(x, n-1, mult*x) if .. 2022. 2. 4.
Leetcode Pow(x,n) 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Pow(x,n) 등급: Medium 내용: x ^ n을 구하라. class Solution(object): def myPow(self, x, n): if x == 0: return x if n == 0: return 1 def helper(x, n, mult): if n == 0: return mult # this is a tail recursion because the final instruction is a recursive call. return helper(x, n-1, mult*x) if .. 2022. 2. 4.
Leetcode Fibonacci Number 파이썬 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Fibonacci Number 등급: Easy 내용: 피보나치 수. 피보나치 수의 개념은 간단하다. 각 숫자들은 앞의 두 숫자의 합이다. 그래서, 011235.... 이렇게 되는 숫자들이다. 간단하게, 그렇다면 f(n) = f(n-1) + f(n-2)를 적으면 되는 것이다. class Solution(object): def fib(self, n): if n< 2: return n return self.fib(n-1)+self.fib(n-2) 그렇다면 이런 코드가 나오게 되어있다. 하지만, 이 코드의.. 2022. 2. 2.
Leetcode Pascal's Triangle II 파이썬 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Pascal's Triangle II 등급: Easy 알아낸 점으로는, 구하고자 하는 row의 전 row가 모두 쓰인다는 점이다. 그 전 row의 (i-1, j-1)이 사용된다. 이 점을 활용할수 있지 않을까? 어떻게든 재귀 호출의 방식을 사용하고 싶었다. 어떻게 list를 더하는 방식으로 되지 않을까 생각했는데, 음.. base case를 어떻게 정해야 하나? if rowindex == 0: return [1]이랑 if rowindex == 1: return [1,1]는 맞을 것 같긴한데... 그.. 2022. 2. 1.
Leetcode: Search in a Binary Search Tree 파이썬 풀이 문제: Search in a Binary Search Tree 등급: Easy 내용: 이진 트리와 val가 주어지는데, 이진트리에서 val를 찾아야함. # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def searchBST(self, root, val): if not root: return None if root.val == val: return root return self.searchBST(root.l.. 2022. 1. 29.