다른 함수들은 모두 간단히 구현이 가능하지만 top을 어떻게 구현하느냐에 따라 효율이 달라진다. list를 heap로 구성하는 heapify를 통해 max heap을 구현후 하나씩 pop하는 방식을 활용해 K개의 가장 높은 점수를 더해 반환했다. import heapq class Leaderboard: def __init__(self): self.dic = defaultdict(int) def addScore(self, playerId: int, score: int) -> None: self.dic[playerId] += score def top(self, K: int) -> int: ret = 0 values = list(self.dic.values()) n_values = [-val for val i..
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 ..
정적이나 침묵 같은 조용한 상황을 견디지 못하는 공포증을 나타내는 용어로 Sedatephobia (진정공포증, 침묵고포증)가 있다. 호기심을 따라 조사를 해봤으나, 해당 용어는 널리 사용되거나 통용되는 용어는 아직 아닌거 같다. 또한 이런 공포증을 특정 물체나 상황, 환경에 과도하고 비이성적인 공포증이라는 넓은 범주 안에 하나로 취급해 집중적인 연구가 이뤄지는 것은 아닌거 같다. 실제로 논문 검색 사이트와 의학 저널에서 찾아봤지만 결과가 거의 나오지 않았고, 블로그에 게재된 글들만 찾을 수 있었다. 인류가 존재하는한 새로운 질병을 지속적으로 맞닥뜨릴 것이 자명하면서도, 근래에 들어 정신 질환의 심각성이 대두되고 있고 관심도 늘고있다. 예를 들어, 요즘 도파민이라는 단어가 많이 사용되고 이를 다루는 미디어..
- Total
- Today
- Yesterday
- 이코노미스트
- vertex shader
- leetcode
- Hash Map
- DICTIONARY
- defaultdict
- 소켓 프로그래밍
- 안드로이드
- 딕셔너리
- 리트코드
- Python
- min heap
- 티스토리챌린지
- Android
- The Economist Espresso
- 머신 러닝
- join
- I2C
- socket programming
- 투 포인터
- machine learning
- tf-idf
- java
- The Economist
- 이코노미스트 에스프레소
- 오블완
- C++
- 파이썬
- Computer Graphics
- ml
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |