본문 바로가기

전체 글267

LeetCode dark mode 설정하기 (extension) addons.mozilla.org/en-US/firefox/addon/darkreader/ Dark Reader – Get this Extension for 🦊 Firefox (en-US) Download Dark Reader for Firefox. Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing. addons.mozilla.org 2021. 3. 25.
[LeetCode] Revese Integer 파이썬 (list comprehension, reverse str) 36ms 걸린 내 솔루션 class Solution: def reverse(self, x: int) -> int: sign = "" if x (2**31)-1 or int(answer) int: if x > 0: result = int(str(x)[::-1]) else: result = -int(str(abs(x))[::-1.. 2021. 3. 25.
[LeetCode] Two Sum 파이썬 (dict, if ~ in) 풀이: class Solution: def twoSum(self, nums, target): seen = {} for i, v in enumerate(nums): remaining = target - v if remaining in seen: return [seen[remaining], i] seen[v] = i return [] enumerate를 사용해서 nums 리스트를 순회한다. target과 nums의 element를 뺀 나머지(remaining)가 seen의 key값으로 존재하는지 확인 존재한다면, seen의 remaininig 키값의 value와 현재 index(i)를 리스트의 원소로 각각 입력후 return seen 이라는 dictionary를 만들어서 value를 key값으로, index.. 2021. 3. 25.
[Lotte] Metric Learning & Few shot Learning Metric Learning Metric Learning - Similarity link Metric learning is the task of learning a distance function over objects. 객체들 사이의 distance를 학습하는 task What " distance function" is? A metric or distance function has to obey four axioms(명제): non-negativity, identity of indiscernibles, symmetry and subadditivity (or the triangle inequality). Some well-known approaches for metric learning include L.. 2021. 3. 21.
[프로그래머스] 여행경로 파이썬(DFS) from collections import defaultdict def solution(tickets): # 특정 티켓의 인접 리스트를 구하는 함수 def init_graph(): routes = defaultdict(list) for key, value in tickets: routes[key].append(value) return routes # 스택을 사용한 DFS def dfs(): stack = ["ICN"] path = [] # 가려고하는 경로를 저장하는 변수 while len(stack) > 0: # stack이 비어있을 때까지 top = stack[-1] # 특정 공항에서 출발하는 표가 없다면 또는 있지만 티켓을 다 써버린 경우 if top not in routes or len(routes.. 2021. 3. 17.
[프로그래머스] 네트워크 파이썬 (BFS) from collections import deque def solution(n, computers): answer = 0 bfs = deque() visited = [0]*n while 0 in visited:# visited 리스트의 모든 값에 방문 표시가 되어있을 때까지 반복 bfs.append(0) visited[0] = 1 while bfs: node = bfs.popleft() for i in range(n): if visited[i] == 0 and computers[node][i] == 1: bfs.append(i) visited[i] = 1 answer += 1# 한 네트워크의 탐색을 마치면 개수 추가 return answer 출처: cocojelly.github.io/algorithm/.. 2021. 3. 17.
[프로그래머스] 단어 변환 파이썬 (BFS/DFS) 고급 from collections import deque as queue transistable = lambda a,b: sum((1 if x!=y else 0) for x,y in zip(a,b)) == 1 def solution(begin,target,words): q, d = queue(), dict() q.append((begin, 0)) d[begin] = set(filter(lambda x:transistable(x,begin), words)) for w in words: d[w] = set(filter(lambda x:transistable(x,w), words)) while q: cur, level = q.popleft() if level > len(words): return 0 for .. 2021. 3. 17.
[프로그래머스] N으로 표현 파이썬 (DP) 출처:goldfishhead.tistory.com/50 def solution(N, number): answer = -1 DP = [] for i in range(1, 9): num_set = { int(str(N) * i) } for j in range(0, i - 1): for x in DP[j]: for y in DP[-j - 1]: num_set.add(x + y) num_set.add(x - y) num_set.add(x * y) if y != 0: num_set.add(x // y) if number in num_set: return i DP.append(num_set) return answer 2021. 3. 16.
[프로그래머스] 2 x n 타일 파이썬 (DP) def solution(n): dp = [0]*(n+1) dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2])% 1000000007 return dp[n] def solution(n): dp = [0]*(n+1) dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2])% 1000000007 return dp[n] 출처: it-garden.tistory.com/410 2021. 3. 16.