본문 바로가기

leetcode17

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 441. Arranging Coins - 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Arranging Coins 등급: Easy 내용: n coin이 주어지는데 그것으로 계단을 만들어라. 마지막 계단층에 충분한 코인이 없다면, 그 계단은 제외하고 총 몇 개의 계단이 있는가? class Solution(object): def arrangeCoins(self, n): # iterative solution # ans is for number of rows ans = 0 row = 1 while n > 0: n -= row # add one more space to the row row .. 2022. 2. 20.
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 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: Reverse Linked List python 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Reverse Linked List 등급: Easy 내용: linked list를 reverse해야한다. 처음 든 생각은, value를 바꾸는 것이었다. 그런데 그러려면 linked list를 array에 저장해서 해야 하는 방법밖에 없을 것 같아서 포기했다. array를 만든다면 linked list의 이점을 포기하는 것 아닌가. 그렇다고 또 다른 linked list를 만들 수는 없지 않은가... 어떻게든 pointer를 바꿔서 해볼까 생각하고 있었다. 그런데 내 머리로는 도저히 안 되는 거였다.. 2022. 1. 28.
[대칭 트리]Leetcode Symmetric Tree Python 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Symmetric Tree 등급: EASY 오늘도 EASY 등급에 힘겨워하는 나... 우선, 이건 내가 생각해서 적은 코드가 아니다. 유튜브를 보고 아이디어를 받았다. # 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(.. 2022. 1. 22.