일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- binary search
- DP
- MYSQL
- 이진탐색
- union find
- SQL
- Trie
- 스토어드 프로시저
- Stored Procedure
- Dijkstra
- Hash
- String
- Two Points
- 다익스트라
- Brute Force
- 그래프
- two pointer
- Today
- Total
목록분류 전체보기 (418)
codingfarm
시스템 프로그램 $\bullet$ 컴퓨터 시스템을 동작(파일 복사, 이동, 삭제...) 시키는 프로그램 ex)windows나 unix 등의 운영체제들 $\bullet$ 하드웨어를 사용할 수 있도록 도와주는 프로그램 컴퓨터 시스템의 구성 요소 컴퓨터 하드웨어의 구성 CPU(Central Processing Unit) $\bullet$ 중앙 처리 장치 $\bullet$ 연산을 담당 $\bullet$ 컴퓨터 프로그램 실행에서 핵심적인 역할을 담당한다. 메인 메모리(main memory) $\bullet$ 램(RAM) 이라는 저장장치로 구성됨 $\bullet$ 컴파일이 완료된 프로그램 코드 binary code 형태로 올라가서 실행되는 영역 하드디스크 메인메모리 자료저장 프로그램의 실행이 주목적 입$\cdot$..
선형계에서 매우 중요하므로 햇갈리지 않게 정리 하였다. 행 사다리꼴 행렬(row echelon form matrix) 행 사다리꼴 행렬이 되기위한 3가지 조건 1.행렬의 행벡터에서 처음으로 $0$이 아닌 성분은 $1$이다. 2.영벡터가 존재할 경우 이들은 행렬의 바닥에 모여있다. 3.영벡터가 아닌 벡터가 연속해서 존재할경우 선행 $1$성분은 윗 벡터보다는 오른쪽에, 아랫 벡터 보다는 왼쪽에 존재한다. 예를 들어 아래 행렬들은 행 사다리꼴 행렬이다. $$\begin{bmatrix} 1 & 4 & 3 & 7 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 1 & 4 \end{bmatrix} ,\begin{bmatrix} 1 & 1 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0 \end{bmatrix} ..
표본공간 $S$를 $n$개로 분할하여 사상 $\{B_1,B_2,\cdots,B_n\}$를 얻는다. $P(B \neq 0),\;\;\;i=1,2,\cdots,n$ 일때 $S$의 임의의 사건 $A$에 대해 $$P(A)=\sum_{i=1}^{n}P(B_i \cap A)=\sum_{i=1}^{n}P(B_i)P(A|B_i)$$ 표본 공간 $S$가 아래와 같이 주어진다. 표본공간 $S$가 $n$개의 사상 $\{B_1, B_2, B_3, B_4\}$로 분할되어 있다. 그리고 사상 $A$가 표본공간 $S$의 임의의 사상이다. 그림에서 보다시피 $A=(B_1 \cap A)\cup (B_2 \cap A)\cup (B_3 \cap A)\cup (B_4 \cap A)$ 사건 $A$의 확률을 교집합의 합집합으로 나타낼 수 있다..
$P(B)>0$ 일때 사상 $B$가 발생했다는 조건하에 사상 $A$가 일어날 확률을 조건부확률(Conditional probability)라 한다. $$P(A|B)=\dfrac{P(A \cap B)}{P(B)}$$ 두개의 사상 $A$와 $B$가 모두 일어날 확률 $P(A \cap B)$는 곱의 법칙(Multiplication rule)에 의해 아래와 같이 정의된다. $P(A) > 0$ 일때 $P(A \cap B) =P(A)P(B|A)$ $P(B) > 0$ 일때 $P(A \cap B)=P(B)P(A|B)$ 한 사상의 발생여부가 다른 사상의 발생에 영햐을 주지 않는 경우를 독립사상(independent event)라 한다. 사상 $A$와 $B$가 독립이면 $P(B|A)=P(B)$ $P(A|B)=P(A)$ 이..
$n$개의 사상 $\{B_1,B_2,\cdots,B_n \}$이 표본공간 $S$의 분할이다. 사상 $A$가 표본공간 $S$의 임의의 사건이라면 $$P(B_i|A)=\dfrac{P(B_i)P(A|B_i)}{\sum_{i=1}^{n}P(B_i)P(A|B_i)}$$ 사상 $B_1,B_2,\cdots,B_n$이 표본공간 $S$의 분할(Partition)이라하자. 즉, $S=B_1 \cup B_2 \cup \cdots\cup B_n$ 그리고 $B_i \cap B_j \neq \varnothing,\;\;\; i \neq j$ 이때 $B_1, B_2, \cdots, B_m$은 상호 배반(matually exclusively)이며 포괄적(exhaustive)이다. 그러므로 $B_i \cap B_j = \varnoth..
이산시간 및 연속시간 LTI 시스템에서의 컨볼루션 합과 적분 $$y[n]=\sum_{k=-\infty}^{+\infty}x[k]h[n-k]=x[n]*h[n]$$ $$y(t)=\int_{-\infty}^{+\infty}x(\tau)h(t-\tau)d\tau=x(t)*h(t)$$ 아래 예제를 통해 비선형시스템에서의 단위 임펄스 응답은 시스템의 행동을 특징 짓지 못함을 알 수 있다. LTI 시스템이 가지는 특성 1. 교환법칙(The Commutative Property) $$x[n]*h[n]=h[n]*x[n]=\sum_{k=-\infty}^{+\infty}h[k]x[n-k]$$ $$x(t)*h(t)=h(t)*x(t)=\int_{-\infty}^{+\infty}h(\tau)x(t-\tau)d\tau$$ 2. 분..
https://www.acmicpc.net/problem/1762 평면그래프가 노드간의 연결 정보를 통해 주어질때 그래프상의 삼각형을 모두 다 찾는 문제이다. 점의 갯수가 10만개 이기에 완전탐색은 불가능하며 메모리 또한 신경써서 다뤄줘야 한다. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #include #include #include using namespace std; vector nodes; int main(void) { ios::sync_with_s..
기저(basis) $\mathbb R^n$의 부분공간 $S$에 대하여, $S$에 속하는 벡터들이 1) $S$를 생성한다. 2) 일차독립이다. 위 조건을 만족하면, 이런 벡터들의 집합을 부분공간 $S$에 대한 기저(basis)라고 한다. $\bullet$ 부분공간은 $\mathbb R^3$에서 원점을 지나는 평면의 일반화 라는 직관적인 사고로부터 많은것을 얻을 수 있다. $\bullet$ 원점을 지나는 평면은 그 평면에 평행하면서 서로 평행하지 않은 두 벡터에 의해 생성된다. 대수적인 용어로, 그런 두 벡터는 평면을 생성하고 일차독립이다. $\bullet$ 평면을 생성하기 위한 조건을 만족한 최소한의 갯수만큼 있는 두 벡터의 집합을 기저라고 한다. $\bullet$ 두 벡터보다 더 적은 개수로는 그런 역할..
$A$를 성분이 실수인 행렬이라고 하자. 연립일차방정식 $Ax=b$에 대해 다음 성질중 하나가 성립한다. a. 해가 존재하지 않는다(불능) b. 유일한 해가 존재한다. c. 무수히 많은 해가 존재한다(부정) (a)와 (b)가 성립하지 않으면 (c)가 성립한다. 즉, 두개 이상의 해가 존재한다면 유한개의 해가 아닌 무수히 많은 해가 있음을 보인다. $Ax=b$에서 적어도 다른 두개의 해 $x_1, x_2$가 존재한다 가정한다. $x_1 \neq x_2$에 대해 $Ax_1=b,\;\;Ax_2=b$ 이므로 $A(x_1-x_2)=Ax_1-Ax_2=b-b=0$ 이다. $x_0=x_1-x_2$라 두면, $x_0 \neq 0$ 이고 $Ax_0=0$이다. $x_1$과 $x_2$라는 서로다른 2개의 해가 존재하므로 $A..
부분공간(subspace) $\mathbb R^n$의 부분공간(subspace)은 다음을 만족하는 $\mathbb R^n$안의 벡터의 모임 $S$이다. 1. 영벡터 $0$은 $S$에 속한다. 2. $u$와 $v$가 $S$에 속하면 $u+v$도 $S$에 속한다. 즉, $S$는 덧셈에 대해 닫혀있다. 3. $u$가 $S$에 속하고 $c$가 스칼라 이면, $cu$도 $S$에 속한다. 즉, $S$는 스칼라배에 대해 닫혀있다. $\therefore$ $u$와 $v$가 $S$에 속하면 $c_1u+c_2v$도 $S$에 속한다. 즉, $S$는 일차결합에 대해 닫혀있다. 즉. 공집합이 아닌 $\mathbb R^n$상의 벡터들의 집합이 스칼라곱과 덧셈에 대해 닫혀있다면 이를 $\mathbb R^n$상의 부분공간이라 한다...
https://docs.blender.org/manual/en/latest/editors/nla/introduction.html 소개 NLA 에디터는 Actions을 조작하거나 재구성 하는데 쓰인다. 가령 걸어다니면서 눈을 깜짝이는 액션 제작시에 가령 눈을 감는 애니메이션이 반복될 경우 매 프레임마다 똑같은 작업을 반복해줄 필요 없이 걸어가는 액션과 눈을 깜박이는 액션을 따로 만든후에 NLA에디터에서 이를 잘 재구성 해주면 재사용성을 높이면서 애니메이션을 짤 수 있게 된다. View Menu RealTime Updates NLA-strips를 변형시킬때 애니메이션의 변화들이 다른 뷰로 전파된다. Show Control F-Curves strip 위에 있는 NLA-strip의 영향을 그래프로 겹처 표시한다..
장착시킬 무기를 object 모드에서 선택하고 부모가될 bone을 shift+좌클릭 으로 함께 선택한다. posemode로 전환한 후에 무기가 따라다니는 기준으로 삼을 bone을 선택한다. ctrl + P 를 눌러서 Set Parent To 창을 열고 Bone을 선택한다. 무기가 손의 위치를 따라다님을 확인 할 수 있다.
한쪽 관절의 모양을 따라 반대쪽 관절도 그 모양을 같게 만들고 싶다. 그러기 위해선 아래의 절차를 따르면 된다. 1.한쪽 관절을 원하는대로 수정한다. 2.반대쪽도 똑같게 만들어줄 관절을 선택해 ctrl + c 로 복사한다. 3. shift+ctrl+v 로 paste pose flipped 를 적용해준다. 이때 위의 과정을 행하기 위해선 아래의 조건을 만족해야 한다. 1. 각 관절의 이름은 좌우 대칭을 이루어야 한다(예를들어 arm.L $\leftrightarrow$ arm.R) 2. edit 모드에서 한쪽 관절의 roll 값이 $x$ 이면 반대쪽 관절은 $-x$ 값이어야 한다.
mesh는 잘 import 되더라도 bone이 이상하게 깨저서 나올때가 많다. 이를 해결하기 위해 아래의 방법대로 해볼것 Import User Properties Import Enums As Strings Ignore Leaf Bones Automatic Bone Orientation
카이제곱 분포는 감마분포에서 $\theta=2,\;\;\alpha=\dfrac{r}{2}\;(r\;is\;positive\;integer)$을 가지는 특수한 분포를 가리킨다. 확률변수 $X$의 $pdf$는 $$f(x)=\frac{1}{\Gamma(r/2)2^{r/2}}x^{(r/2)-1}e^{-x/2}\;\;\;\;,0 < x < \infty$$ $X$는 자유도(degree of freedom) $r$의 카이제곱분포를 따른다 하고 $\chi^2(r)$이라 표기한다. 평균과 분산 $$\mu=r\;\;\;\;\;,\sigma^2=\alpha \theta^2=2r$$ 자유도 $r$과 $x$값에 대한 카이제곱 $cdf$ $$F(x)= \int_{0}^{x} \frac{1}{\Gamma(r/2)2^{r/2}}w^..
[툴바]->[프로젝트 세팅] [엔진]->[입력] 으로 이동하면 입력 매핑의 설정이 가능하다. 액션 매핑 $\bullet$ 디지털 입력을 다루는 설정이다. $\bullet$ '눌릴 때' 와 '떨어질 때'에 이벤트가 호출 된다. 축 매핑 $\bullet$ 아날로그 입력을 다룬다. $\bullet$ 입력의 정도에 따라 수치가 달라진다.
target에 따라 움직이는 뱀 애니메이션을 만들어 본다. 빨간색 타겟을 움직이면 나머지 관절들이 뱀처럼 움직이도록 action을 설정하고 싶다. 처음 시작지점의 설정을 위해 0프레임에서 나머지관절을 모두 선택하고 i를 눌러 키프레임을 넣는다. 원하는 프레임을 설정 한 후 원하는 애니메이션대로 관절을 만들고 i를 눌러 키프레임을 넣는다. 그러면 위 사진대로 설정이 완료된다. 이제 액션을 설정해보자 우선 시작부분의 bone을 선택한 후에 add bone constraint에서 action을 추가한다. 그리고 위와 같이 값들을 설정한다. 나머지 5개의 관절에 대해서도 똑같은 과정을 반복한다. 타겟의 움직임에 따라 관절이 뱀처럼 휘어 지는것을 확인 할 수 있다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass = TEXT("First"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance , LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_..
API(Application Programming Interface) 응용프로그램이 OS의 기능을 편리하게 사용할 수 있도록, OS나 언어에서 제공하는 인터페이스이다. OS가 응용프로그램을 위해 제공하는 함수의 집합이라고도 정의가능하다. 즉, 프로그램끼리 서로 편리하게 소통하게 해주는 수단이라 볼 수 있다. 그러므로 API는 운영체제와 응용프로그램간의 약속이다. 왜 API를 쓰는가/제공하는가? OS에서 실행되는 응용프로그램은 OS에 종속적일 수밖에 없으므로 OS가 규정한 바대로 하드웨어에 접근해야 한다. 이때 사용자들은 어려운 전문지식 없이 그리고 제공자들은 자신들의 소프트웨어 자산을 숨긴채 사용자들이 OS의 기능을 사용하게끔 해준다. API의 예 대부분의 개발자들은 하드디스크가 파일을 저장하는 장치라는..
UML이란 Unified Modeling Language 의 줄임말로써 소프트웨어 개념을 다이어그램으로 표현하기 위한 프로그램 설계도이다. 즉, 모델링언어이다. UML의 사용목적은 문제 도메인, 소프트웨어 설계 제안, 이미 완성된 소프트웨어 구현에 대한 다이어그램 그리기에 있다. 이러한 서로 다른 세 가지 차원을 각각 개념(conceptual), 명세(specification), 구현(Implementation) 이라 구분한다. 여기서는 주로 명세와 구현에 대해 다룬다. 가령 개는 포유류 이다. 라는 문장을 UML 다이어 그램으로 표현하면 아래와 같다. 위 그림은 Animal과 Dog 2개의 존재가 일반화(generalization) 관계로 연결되었음을 묘사한다. Animal은 Dog의 일반화이다. Do..