본문 바로가기

Programming207

[LeetCode] Valid Palindrome II https://leetcode.com/problems/valid-palindrome-ii/submissions/ Valid Palindrome II - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 투 포인터를 활용하면 되는 문제 class Solution(object): def validPalindrome(self, s): """ :type s: str :rtype: bool """ # Time: O(n) # Space: O(n) left, right = 0,.. 2022. 4. 2.
Python이 느린 이유? Python이 느린 이유. 지금까지 공부했을 때는 그냥 인터프리터 언어라서~ GIL 때문에~ 이러면서 적당히 넘어갔었는데, 찾아보며 하나하나 공부하다 보니 심오한(?) 내용들이 많았다 일단 내가 이해한 Python이 느린 이유를 간단하게 적고 조금씩 자세하게 추가 해 나가도록 해야겠다. Python은 인터프리터 언어인가요? 나의 생각은 반만 인터프리터 사실 인터프리터, 컴파일러 언어라는게 상당히 애매모호한 개념이다. 1. 사실 Python이 느린 게 아니라 Python의 표준 구현체인 Cpython이 느린 것. - Cpython 과 pypy의 차이 + 구현체가 어떻게 동작하길래? 2. 인터프리터, 컴파일러의 차이 (컴파일이 의미하는 게 뭐길래?) - 사실 Python도 어떻게 보면 컴파일 언어고 어떻게 .. 2022. 4. 2.
[LeetCode] Department Highest Salary https://leetcode.com/problems/department-highest-salary/ Department Highest Salary - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 부서별 봉급이 가장 높은 사람의 아이디, 봉급, 부서이름을 출력 나의 풀이 SELECT D.name AS Department, Employee, salary FROM ( SELECT name AS Employee, salary, E.departmentId FROM E.. 2022. 3. 31.
[LeetCode] Customers Who Never Order https://leetcode.com/problems/customers-who-never-order/ Customers Who Never Order - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 상품을 주문한 적 없는 회원을 찾는 문제 나의 풀이 - Left Join 활용 SELECT Customers FROM (SELECT name AS Customers, customerId FROM Customers AS c LEFT JOIN Orders AS o ON .. 2022. 3. 31.
[LeetCode] Duplicate Emails https://leetcode.com/problems/duplicate-emails/ Duplicate Emails - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com email이 중복된 id를 출력하면 되는 문제 SELECT email AS Email FROM Person GROUP BY email HAVING COUNT(email) > 1 ; GROUP BY + HAVING을 활용하여 간단하게 풀이할 수 있다. 2022. 3. 31.
[LeetCode] Employees Earning More Than Their Managers https://leetcode.com/problems/employees-earning-more-than-their-managers/ Employees Earning More Than Their Managers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 자신의 매니저보다 많이 버는 사람 구하는 문제 나의 풀이 SELECT E.name AS Employee FROM Employee E JOIN Employee M ON E.managerId = M.id WHE.. 2022. 3. 31.
[LeetCode] Consecutive Numbers (MySQL) https://leetcode.com/problems/consecutive-numbers/ Consecutive Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com row 3개 연속해서 등장하는 num을 찾는 문제. 1. Where IN 활용 select distinct Num as ConsecutiveNums from Logs where (Id+1,Num) in (Select * from Logs) and (ID+2, Num) in (Select .. 2022. 3. 31.
[LeetCode] Combine Two Tables (MySQL) https://leetcode.com/problems/combine-two-tables/ Combine Two Tables - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com personId로 조인하는 문제 outer join을 하면 된다. SELECT firstName, lastName, city, state FROM Person p LEFT JOIN Address a ON p.personId = a.personId ; 2022. 3. 31.
[LeetCode] Search a 2D Matrix https://leetcode.com/problems/search-a-2d-matrix/ Search a 2D Matrix - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 정렬되어 있는 게 이진 탐색으로 풀어주세요~ 하는 조건이다. 데이터는 매트릭스 형태이기 때문에 이에 맞춰 수정해주면 된다. 재귀로 풀었다. 나의 풀이 class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) ->.. 2022. 3. 30.
[LeetCode] Design Circular Queue (스택으로 원형 큐 구현) https://leetcode.com/problems/design-circular-queue/ Design Circular Queue - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 투 포인터 개념으로 풀면 된다. class MyCircularQueue: def __init__(self, k: int): self.q = [None]*k self.head = 0 self.tail = 0 self.size = k def enQueue(self, value: int.. 2022. 3. 29.
[LeetCode] Implement Queue using Stacks(스택으로 큐 구현) https://leetcode.com/problems/implement-queue-using-stacks/ Implement Queue using Stacks - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 스택을 두 개 사용해서 큐를 구현하는 문제 나의 풀이 class MyQueue: def __init__(self): self.s1 = list() self.s2 = list() def push(self, x: int) -> None: self.s1.appe.. 2022. 3. 29.
[LeetCode] Implement Stack using Queues(큐로 스택 구현) https://leetcode.com/problems/implement-stack-using-queues/ Implement Stack using Queues - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 큐로 스택을 구현하는 근본 문제 push 할 때 append 해주고 기존에 queue에 있던 원소는 popleft 이후 다시 큐의 맨 뒤로 줄줄이 붙여주면 된다. 요소 삽입 시 시간복잡도가 O(N)이 되어 다소 비효율적이긴 하지만, 큐로 스택을 구현할 수 .. 2022. 3. 29.
[LeetCode] Daily Temperatures https://leetcode.com/problems/daily-temperatures/ Daily Temperatures - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 어떤 시간의 흐름에 따라 풀이하는 건 스택을 활용하면 쉽게 풀 수 있는 것 같다. class Solution: def dailyTemperatures(self, temperatures: List[int]) -> List[int]: stack = [] answer = [0] * len(temp.. 2022. 3. 29.
[LeetCode] Remove Duplicate Letters https://leetcode.com/problems/remove-duplicate-letters/ Remove Duplicate Letters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com class Solution: def removeDuplicateLetters(self, s: str) -> str: last_occ = {} visited = set() stack = [] for i in range(len(s)): last_occ[s[i]] = i fo.. 2022. 3. 29.
[LeetCode] Number of Islands https://leetcode.com/problems/number-of-islands/ Number of Islands - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 매우 유명한 섬 문제 dfs로 풀이했다 class Solution: def numIslands(self, grid: List[List[str]]) -> int: move = [(0,1),(0,-1),(1,0),(-1,0)] def OOB(x, y): return x=len(grid) or y=l.. 2022. 3. 25.