일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 밴픽
- Class
- attribute
- 715. Range Module
- Regular Expression
- 파이썬
- Python Implementation
- iterator
- t1
- 30. Substring with Concatenation of All Words
- 컴퓨터의 구조
- LeetCode
- DWG
- concurrency
- 프로그래머스
- Python
- 43. Multiply Strings
- Protocol
- 315. Count of Smaller Numbers After Self
- Python Code
- 109. Convert Sorted List to Binary Search Tree
- 운영체제
- Convert Sorted List to Binary Search Tree
- data science
- Generator
- Substring with Concatenation of All Words
- 시바견
- kaggle
- Decorator
- shiba
- Today
- Total
목록분류 전체보기 (407)
Scribbling
import heapq import copy def solution(scoville, K): answer = 0 h = copy.deepcopy(scoville) heapq.heapify(h) while len(h) >= 2 and h[0] = K: return answer else: return -1
1. 메모리 관리 1.1 메모리 관리 시작하기에 앞서, 이 장에서 메모리는 메인메모리를 의미한다. CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위하여 메모리 주소 레지스터(MAR)을 사용한다. 폰노이만 구조의 컴퓨터에서는 메모리가 유일한 작업 공간이므로, 모든 프로그램은 메모리에 올라와야 실행 가능하다. 운영체제도 당연히 메모리에 올라와야 실행이 가능하다. 전원 버튼을 누르면 부팅이 이루어지는데, 이 때 하드디스크에 저장된 운영체제가 메모리에 올라간다. 메모리 관리는 운영체제를 비롯하여 여러 프로세스가 동작할 때 메모리를 어떻게 관리하는가에 관한 문제이다. 이는 메모리 관리 시스템(MMS; Memory Management System)이 담당한다. 1.2 컴파일러와 인터프리터 ..
근본 없는 문제다. 도저히 지문을 이해할 수 없게 적어놨다. def solution(prices): answer = [i for i in range(len(prices)-1, -1, -1)] stack = [] for i in range(len(prices)): p = prices[i] if not stack or p >= stack[-1][0]: stack.append((p, i)) else: while stack and stack[-1][0] > p: bef_p, bef_i = stack.pop() answer[bef_i] = i - bef_i stack.append((p, i)) return answer
from collections import deque def solution(bridge_length, weight, truck_weights): time, total_weight = 1, 0 q = deque() truck_weights = deque(truck_weights) while truck_weights: if not q: w = truck_weights.popleft() q.append([time, w]) total_weight += w else: if q[0][0] + bridge_length == time: total_weight -= q[0][1] q.popleft() w = truck_weights[0] if total_weight + w
2021년 2분기즈음 한국 주식시장에 훈풍이 불면서, 나는 퀀트와 자동매매에 관심을 갖게 되었다. "Quant 이모저모" 게시판에는, 당시 내가 해보았던 작업을 기록해두고자 한다. 이는 다양한 Backtesting과 자동매매에 대한 내용을 포함할 것이다. 첫 글에서 다루고 싶은 내용은 PBR과 주식 수익률의 상관관계이다. 이는 퀀트에 관심을 갖고 찾아보다보면 매우 흔히 접하게 되는 주제이기도 하다. 짬이 조금이라도 있는 주식 투자자라면, 'PBR' 지표는 들어보았을 것이다. PBR(Price-to-Book Ratio)은 말 그대로 장부가 대비 주가를 의미한다. PBR이 높다는 의미는 장부가 대비 주가가 높다는 것이며, 반대로 PBR이 낮다는 것은 장부가 대비 주가가 낮다는 것이다. PBR이 낮은 주식은 ..
class Solution: def numTrees(self, n: int) -> int: dp = [0] * (n+1) dp[0] = 1 dp[1] = 1 for i in range(2, n+1): count = 0 for j in range(1, i+1): count += dp[j-1] * dp[i-j] dp[i] = count return dp[n]
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def generateTrees(self, n: int) -> List[Optional[TreeNode]]: return self.tree_maker([i for i in range(1, n+1)]) def tree_maker(self, nums): if not nums: return [None] ret = [] for i, num in enumerate(nums): lefts = sel..
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]: new_head = ListNode(val=0, next=head) count = 0 ptr = new_head prev, cur = None, new_head nxt = head for i in range(left): prev = cur cur = nxt nxt = cur...
DFS version class Solution: def isInterleave(self, s1: str, s2: str, s3: str) -> bool: if len(s1) + len(s2) != len(s3): return False self.s1 = s1 self.s2 = s2 self.s3 = s3 self.dp = set() return self.dfs(0, 0, 0) def dfs(self, i, j, k): if (i, j, k) in self.dp: return False if k == len(self.s3): return True if i < len(self.s1) and self.s1[i] == self.s3[k]: if self.dfs(i+1, j, k+1): return True i..
class Solution: def restoreIpAddresses(self, s: str) -> List[str]: self.ret = [] self.nums = set([str(i) for i in range(256)]) self.helper(s, []) return self.ret def helper(self, s, ip): if len(ip) == 4: if not s: self.ret.append('.'.join(ip)) return if not s: return for i in range(min(3, len(s))): if s[:i+1] in self.nums: self.helper(s[i+1:], ip+[s[:i+1]])