일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MRI
- loss functions
- resample
- scowl
- freebooze
- non parametic softmax
- normalization
- sample rows
- objective functions for machine learning
- thresholding
- straightup
- domain adaptation
- clip intensity values
- model-free control
- sidleup
- 자료구조
- fastapi
- Knowledge Distillation
- Actor-Critic
- rest-api
- remove outliers
- shadowing
- checkitout
- 3d medical image
- pulloff
- Inorder Traversal
- noise contrast estimation
- REINFORCE
- Policy Gradient
- Excel
- Today
- Total
목록Programming/Algorithm (8)
Let's Run Jinyeah

Outer product uvT output: matrix time complexity: O(n2) Inner product uTv output: scalar time complexity: O(n) a = [a0, a1, a2, ... , aN-1], b = [b0, b1, b2, ...., bN-1] a0*b0 + a1*b1 + aN-1*bN-1 Assuming that multiplication and addition are constant-time operations, the time-complexity is O(n) Multiply O(n) + add O(n) = O(n)
1. 하나의 리스트에서 모든 조합 구하기 - itertools의 permutations 또는 combinations이용 from itertools import permutations letters = ['a', 'b', 'c'] result = list(permutations(items, 2)) result = list(map(''.join, result)) # ['ab', 'ac', 'ba', 'bc', 'ca', 'cb'] from itertools import combinations letters = ['a', 'b', 'c'] result = list(permutations(items, 2)) result = list(map(''.join, result)) # ['ab', 'ac', 'bc'] 2..
Tree 그래프 자료구조의 일종으로 데이터베이스 시스템이나 파일 시스템과 같은 곳에서 많은 양의 데이터를 관리하기 위한 목적으로 사용됨 특징 트리는 부모 노드와 자식 노드의 관계로 표현된다 트리의 최상단 노드를 루트 노드라고 한다 트리의 최하단 노드를 단말 노드라고 한다 트리에서 일부를 떼어내도 트리 구조이며 이를 서브 트리라 한다 트리는 파일 시스템과 같이 계층적이고 정렬된 데이터를 다루기에 적합하다 Binary Tree Tree that each node has no more than two child nodes. Each node has a left node and a right node Binary Search Tree 중위 순회(Inorder Traversal)를 하면 키 값의 오름차순으로 노드..
개념 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색 한번 확인할 때마다 확인하는 원소의 개수가 절반씩 줄어든다는 점은 퀵 정렬과 비슷 단계마다 2로 나누는 것과 동일 - 시간복잡도 O(logN) 효율적으로 삽입 가능 구현 재귀 def binary_searcy(array, target, start, end): if start > end: return None mid = (start+end) // 2 if array[mid] == target: return mid elif array[mid] > target: return binary_search(array, target, start..
오름차순 기준으로 정렬 내림차순: 오름차순을 뒤집기 with 시간복잡도 O(N) 선택정렬 가장 작은 것을 선택해서 맨 앞 원소와 swap하는 과정을 N-1번 반복 매번 가장 작은 원소를 찾기 위해 비교 연산 해야함 - 시간복잡도 O(N^2) for i in range(len(array)): min_index = i for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] 삽입정렬 선택정렬처럼 직관적으로 이해하기 쉬운 알고리즘, 실행 시간 측면에서 더 효율적 O(N^2) - 현재 리스트의 데이터가 거의 정렬되어 있는상태라면..
Outline 완전탐색 DFS/BFS 완전탐색(브루트 포스) 모든 경우의 수를 탐색 전체 데이터 개수가 100만 개 이하일 때 사용 DFS/BFS 그래프 탐색 알고리즘 재귀함수의 수행은 스택 자료구조 이용 스택, 큐 관련 기초지식 그래프 관련 기초지식 DFS(깊이 우선 탐색) 특정한 경로로 탐색하다가 특정한 상황에서 최대한 깊숙이 들어가서 노드를 방문한 후, 다시 돌아가 다른 경로를 탐색 스택 자료구조에 기초(선입후출) 스택을 이용하는 알고리즘이기 때문에 실제 구현은 재귀함수를 이용했을 때 매우 간결 시간복잡도 O(N) def dfs(graph, v, visited): visitied[v] = True print(v, end ='') for i in graph[v]: if not visitied[i]: ..

그래프 구성 노드(node) 간선(edge) 그래프 종류 무방향 그래프 vs 방향 그래프 무방향 그래프: 간선을 통해 양방향으로 갈 수 있다 방향 그래프: 간선에 방향성이 존재 연결 그래프 vs 비연결 그래프 연결 그래프: 무방향 그래프에 있는 모든 정점 쌍에 대해서 항상 경로가 존재하는 경우 비연결 그래프: 무방향 그래프에서 특정 정점쌍 사이에 경로가 존재하지 않는 경우 사이클 vs 비순환 그래프 사이클: 단순 경로의 시작 정점과 종료 정점이 동일한 경우 단순 경로: 경로 중에서 반복되는 정점이 없는 경우 비순환 그래프: 사이클이 없는 그래프 완전 그래프 그래프에 속해있는 모든 정점이 서로 연결되어 있는 그래프 그래프 구현 방법 - 2차원 리스트 1. 인접행렬: 2차원 배열로 그래프의 연결 관계를 표현..

Basic data structures array, list, tuple linked list set, dictionary graph, tree stack, queue Stack(=array) 선입후출 리스트 라이브러리 이용 append(): 리스트의 가장 뒤쪽에 데이터 삽입 pop(): 리스트의 가장 뒤쪽에서 데이터 꺼냄 Queue 선입선출 collections 모듈에서 제공하는 deque 자료구조 활용 속도가 리스트 자료형에 비해 효율적이며, queue 라이브러리를 이용하는 것보다 더 간단 from collections import deque queue = deque() queue.append((x,y)) x, y = queue.popleft() Linked List Why?(=Array limit..