본문 바로가기

코딩 공부28

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 258. Add Digits - Python 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Add Digits 등급: Easy 내가 적고 엄청 느린 코드 class Solution(object): def addDigits(self, num): if num < 10: return num while num >= 10: prev = 0 while num > 0 : prev += num % 10 num = num // 10 num = prev return num 우선, 숫자가 10보다 작으면 바로 그대로 반환하도록 했다. 그 후, 만약 숫자가 10보다 클 경우, 숫자를 10으로 나눠서 남는 값,.. 2022. 2. 13.
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.