input으로 주어진 두 스케쥴을 첫번째 요소의 크기를 기준으로 오름차순으로 정렬 후 각각에 index를 부여했다. 시작 시간은 비교 중인 두 slot 중 큰 값을, 끝나는 시간은 작은 값을 계산해 공통되는 구간을 찾고 해당 구간의 크기가 duration보다 길면 충분히 겹치는 시간이 있기에 반환한다. 스케쥴의 각 slot에서 두번째 요소인 끝나는 시간을 기준으로 index를 증가시켜 나갔다. class Solution: def minAvailableDuration(self, slots1: List[List[int]], slots2: List[List[int]], duration: int) -> List[int]: slots1.sort() slots2.sort() i = j = 0 while i < le..
inorder를 통해 BST를 traverse하면서 list에 오름차순으로 값을 넣고, 첫번째 list는 작은 숫자부터, 두번째 list는 큰 숫자부터 더하는 Two Pointer 방식으로 target을 찾았고 없으면 False를 반환한다. class Solution: def twoSumBSTs(self, root1: Optional[TreeNode], root2: Optional[TreeNode], target: int) -> bool: def inorder(n): if n == None: return [] left = [] right = [] if n.left != None: left = inorder(n.left) if n.right != None: right = inorder(n.right) re..
조건을 확인하는 WHERE에서 %를 연산해 조건에 해당하는 column을 뽑아내고 problem_id를 통해 정렬했다. SELECT problem_id FROM Problems WHERE likes / (likes + dislikes) * 100 < 60 ORDER BY problem_id 참고 - https://leetcode.com/problems/low-quality-problems/
input으로 주어진 num의 각 자리의 숫자를 나머지 연산자와 나누기를 통해 list에 저장하고, 이를 하나씩 꺼내 num이 나누어 떨어지면 카운트를 더해 반환했다. class Solution: def countDigits(self, num: int) -> int: ret = 0 n = num nums = [] while n > 0: nums.append(n % 10) n //= 10 for n in nums: if num % n == 0: ret += 1 return ret 참고: - https://leetcode.com/problems/count-the-digits-that-divide-a-number/
: 사용자 의견이나 정보를 알기 위해 입력할 큰 틀을 만들 때 사용. 전송한 데이터는 웹 서버가 처리하고, 결과에 따른 또 다른 웹 페이지를 보여준다.form 웹 페이지 방문 -> form 내용 입력 -> form의 데이터를 웹 서버로 전송 -> 웹 서버는 데이터 처리를 위해 웹 프로그램으로 전송-> 웹 프로그램이 데이터 처리-> 처리 결과에 따른 새로운 html을 웹 서버로 전송-> 웹 서버는 받은 html 페이지를 브라우저로 전송-> 브라우저는 받은 html을 보여줌action: form을 전송할 서버 쪽 script 파일 지정name: 식별을 위한 이름 지정accept-charset: form 전송에 사용할 문자 인코딩 지정target: action에서 지정한 script 파일을 현재 창이 아닌 다..
set 역시 list를 비롯한 다른 collection과 마찬가지로 다루기 위한 함수들이 존재하고 대표적으로 사용되는 함수들은 아래와 같다. add(elem) : 요소 elem을 set에 추가 remove(elem) : 요소 elem을 set에서 제거하는데 존재하지 않을 수 KeyError 발생 discard(elem) : 요소 elem을 set에서 제거하지만 없어도 error는 발생하지 않음 pop() : 임의의 요소를 반화하면서 제거. set가 비어있다면 KeyError 발생 clear() : set의 모든 요소 제거 참고 - https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
# set 선언 s = set() # list로 casting l = list(s) 파이썬 공식 사이트에 따른 set에 대한 설명은 아래와 같다. : set 객체는 해시 가능한 별개의 객체들의 정렬되지 않은 컬렉션(collection이다. 멤버십 확인, 배열에서 중복 제거, 교집합, 합칩합, 차집합, 대칭 합 같은 수학 연산 계산 등에 주로 사용된다. 다른 컬렉션과 마찬가지로 set는 x in set, len(set), for x in set를 지원한다. 정렬되지 않은 컬렉션이기에 set는 요소의 위치나 삽입 순서를 기록하지 않는다. 따라서 set는 index나 slice 또는 기타 순서에 대한 동작을 지원하지 않는다. 현재 기본 제공 set 유형에는 set와 frozenset 두 가지가 있다. set ..
Git repository에 너무 큰 용량의 파일들을 push 하려할 때 아래와 같은 에러 메세지가 나타난다. Git은 HTTP를 통해 한 번에 push 명령어로 전송할 수 있는 데이터의 제한이 걸려있는데 이는 'http.postBuffer'를 통해 configuration setting을 변경해 줄이거나 늘릴 수 있다. 예를 들어, 500 MiB로의 변경은 아래 명령어를 통해 가능하다. git config --global http.postBuffer 524288000 에러 메세지: Enumerating objects: 117, done. Counting objects: 100% (117/117), done. Delta compression using up to 16 threads Compressing ..
integer로 구성된 sticks라는 input array의 모든 요소를 이어 붙이는 문제다. 이 때 더할 때 마다 발생하는 합이 최소가 되도록 하는 문제다. sorting을 통해 풀이를 해야하나 잠시 생각했지만 Min heap을 사용하면 쉽게 구현이 가능하다. class Solution: def connectSticks(self, sticks: List[int]) -> int: mh = sticks ret = 0 heapify(mh) while len(mh) > 1: m1 = heappop(mh) m2 = heappop(mh) sum_ = m1 + m2 ret += sum_ heappush(mh, sum_) return ret
createPath 함수에 주어지는 input 중 하나인 path를 '/'로 split해 parent path와 비교해가며 함수를 완성하려 했지만, Test case에 번번히 걸려 다른 방법으로 풀었다. split을 통해 '/'로 path를 자르는건 동일하지만 split 된 list에서 마지막 요소만 제외하고 하나의 String으로 다시 구성해 parent에 대한 True/False를 확인하는 방식으로 풀었다. get 함수는 Hash map을 통해 수월하게 구현했다. class FileSystem: def __init__(self): self.p = {} def createPath(self, path: str, value: int) -> bool: if path in self.p: return False..
- Total
- Today
- Yesterday
- I2C
- defaultdict
- 파이썬
- 투 포인터
- Python
- tf-idf
- java
- 이코노미스트 에스프레소
- 오블완
- 티스토리챌린지
- Hash Map
- The Economist Espresso
- Android
- socket programming
- leetcode
- ml
- 리트코드
- join
- min heap
- 이코노미스트
- The Economist
- C++
- machine learning
- DICTIONARY
- 안드로이드
- vertex shader
- 소켓 프로그래밍
- 머신 러닝
- Computer Graphics
- 딕셔너리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |