일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Two Points
- DP
- 다익스트라
- Trie
- Stored Procedure
- two pointer
- 그래프
- String
- Brute Force
- Dijkstra
- union find
- SQL
- binary search
- Hash
- MYSQL
- 이진탐색
- 스토어드 프로시저
- Today
- Total
목록분류 전체보기 (425)
codingfarm
유니티에서 코루틴은 일정시간을 두고 작업을 해야하는 작업에 주로 쓰입니다. update가 매프레임마다 호출, fixed update가 초당정해진 시간마다 호출되는것과 상반됩니다. 가령 게임내에서 10초를 카운트 해야 할 일이 생긴다면 update 함수를 쓸 경우엔 update내에서 변수에 Time.deltaTime을 계속 더하면서 if문으로 10초가 넘었는지를 탐색해야 하지만, 코루틴을 쓸경우 IEnumerator TimerFunc(){ $\vdots$ yield return new WaitForSeconds(10); $\vdots$ } yield return 위의 코드가 다 실행되고 10초 후에 아래 코드가 실행됩니다. 가령 특정오브젝트를 0.05초에 한번씩 이동시켜줄 경우 1 2 3 4 5 6 7 8..
메카님은 3가지 요소로 구성되어 있다. Animator 컴포넌트 : 플레이어 캐릭터의 게임 오브젝트에 애니메이션을 컨트롤한다. Animation controller : 컴포넌트와 관련된 컨트롤 데이터 Animation clip : 애니메이션 데이터 개발자는 메카님을 이용하여 Animator 컴포넌트에게 걷거나 달리도록 지시를 내려 애니메이션을 실행할 수 있다.

Raycast란 무엇일까? 원하는 좌표에서 설정된 방향으로 설정된 거리이내에 충돌체가 있는지 없는지 충돌감지에 주로 쓰입니다. 플레이어의 오른쪽으로 ray가 뻗어 나옴이 육안으로 확인 되며 ray에 닿는순간 붉은색으로 변한 모습입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RayTest2 : MonoBehaviour { RaycastHit hit; // Start is called before the first frame update void Start() { } //..
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpriteTest2 : MonoBehaviour{ // Start is called before..

스크립트를 통해 sprite를 변경하는 방법이다. Sprite Renderer에 있는 Sprite 속성에 원하는 스프라이트를 대입해주면 표시되는 그림이 달라진다. 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 59 60 61 62 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpriteTest : MonoBehaviour { // Start ..

1. 컴퓨터 구조의 접근방법 컴퓨터 디자인 $\bullet$ CPU의 Register 만을 디자인 대상으로 삼는다. (ALU와 Control Unit은 이미 있다고 가정한다.) $\bullet$ 시스템 프로그래머 입장에서 CPU를 보는 관점은 Register에 집중된다. 여기서 시스템 프로그래머란 CPU에 종속적인 어셈블리 프로그래밍을 하는 개발자이다. 레지스터 디자인 ARM 코어를 참조하여 레지스터를 디자인 해보자. r0 r1 r2 r3 r4 ir r5 sp r6 lr r7 pc ir(instruction register), sp(stack pointer), lr(link register), pc(program counter) 명령어 구조 및 명령어 디자인 $\bullet$ 레지스터의 디자인을 바탕으로..

Windows 프로그래밍에서 GUI 프로그래밍을 하건, 시스템 프로그래밍을 하건 유니코드에 대한 이해는 필수적이다. 1. Windows 에서의 유니코드(UNICODE) 문자셋(Character Sets)의 종류와 특성 대표적인 문자셋으로 아스키코드(ASCII CODE)와 유니코드(UNICODE)가 있다. 아스키코드(ASCII CODE) 유니코드(UNI CODE) $\bullet$ 미국에서 정의하는 표준이다. $\bullet$ 크기 : 1byte (영어 + 특수문자가 256개 이하) $\bullet$ 전세계 문자를 표현하기 위한 표준 $\bullet$ 크기 : 2byte 문자셋(character set) $\bullet$ 문자들의 집합, 문자의 표현방법에 대한 약속 $\bullet$ 종류에 따라 아래와 같..

시스템 프로그램 $\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$ 값이어야 한다.