본문 바로가기

파이썬15

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 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 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 Path Sum Python 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Path Sum 등급: 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(object): def hasPathSum(self, root, targetSum): if not .. 2022. 1. 24.
Leetcode: Can Place Flowers python 풀이 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 문제: Can Place Flowers 등급: Easy 분명히 Easy인데.. easy인데... easy란 말야 ㅠㅠ 내용: 0과 1의 array가 주어지고, 꽃을 심을 곳을 찾아야 한다. 꽃은 0에만 심을 수 있고, 옆에도 0이야 한다. 또한, 꽃의 개수도 주어지는데, 이 꽃의 개수(n)가 실제 심을 수 있는 값이랑 같다면 True를 반환, 틀리다면 False를 반환하게 돼있다. 처음에 든 생각으로는, 000, 이렇게 '0이 세 개가 주어지면 꽃을 심을 수 있겠다'이었다. 그래서, 000이 되면 coun.. 2022. 1. 23.
[대칭 트리]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.
Leetcode - Binary Tree Postorder Traversal(후위 순회) Python 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 2022.01.17 - [Binary Tree / 이진 트리] Leetcode - Binary Tree Inorder Traversal Python 파이썬 문제: Binary Tree Postorder Traversal 등급: EASY 너무나도 많이 고민했다. 어제 적은 코드에서 무엇을 바꾸면, root를 자연스럽게 마지막에 더할수 있을까? 고민했다. (어제 2번 코드 참고) 처음에 들은 생각은, while loop에 if 식을 하나 넣으면 되지 않을까 생각했다. 이 방식은 되지 않았다. if를 넣는다면,.. 2022. 1. 19.
[Binary Tree / 이진 트리] Leetcode - Binary Tree Inorder Traversal Python 파이썬 요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다. 어제 Binary Search와 이어집니다. 2022.01.16 - [코딩 공부] - [Binary Tree / 이진트리] Leetcode - Binary Tree Preorder Traversal Python 파이썬 문제: Binary Tree Inorder Traversal 등급: EASY (분명 easy인데... easy인데..!!) 내용: "Given the root of a binary tree, return the inorder traversal of its nodes' values." clas.. 2022. 1. 17.