본문 바로가기
반응형

코딩/알고리즘6

디자인 패턴 - 컴포넌트 패턴 (Component) 컴포넌트 패턴이란? 각각의 기능을 가지고 있는 부품(Component)들을 추가하며 붙여 조립식으로 사용하는 패턴. 자식-부모 관계의 상속과는 달리, 각각의 부품들끼리 서로 영향을 주지 않아 결합도(커플링)가 없다. 때문에 확장성이 좋아 컴포넌트를 추가/제거하기 편리하다. Ex) 상속 - 그녀가.. 젤나가다 컴포넌트 - 그녀는 젤나가 속성를 가지고 있다. 구현 CreateCom을 통하여 컴포넌트를 생성하면, 일반적으로 오브젝트List에 추가하고, Actor(몸통)을 this로 변경하여 표시한다. 이후 해당 컴포넌트는 Actor의 위치 좌표를 변경하거나, Actor를 삭제하거나 하는 등, Actor를 기준으로 영향을 미치며 작동한다. 사용 예시 내 오토체스 포트폴리오에 사용된 컴포넌트 패턴에 대한 예시이다.. 2022. 6. 26.
디자인 패턴 - 싱글톤(Singleton) 싱글톤(Singleton) 이란? 자기 자신을 static 형식으로 보유하고 있는 클래스로, 객체의 인스턴스가 오직 하나만 생성되는 디자인 패턴이다. 싱글톤의 기본 구조 - C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; } } Colored by Color Scripter cs 템플릿을 활용한 싱글톤 - Unity(C#) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 .. 2022. 6. 26.
내적 내적 점곱(점들의 곱)이라고 불리기도 하는 내적은 스칼라값을 내는 벡터 곱셈의 일종이다. 결과가 스칼라 값이라 스칼라 곱이라고 부르기도 한다. 벡터 A = (Ax, Ay, Az)일때, 두 벡터의 곱은 AxBx+AyBy+AzBz이다. 이는 A*B = ||A|| ||B|| cosC 가 되며 C를 통하여 AB사이의 각도를 구할 수 있다. (||A|| = A벡터의 크기 = √(x^+y^+^))) 그 증명은 A = (1, 2, 3)이고 B = (-4,0, -1)이라고 할 때, A*B = (1,2,3) * (-4,0,-1) = -4-3 = -7 ||A|| = √(1^+2^+3^) = √14 ||B|| = √17 cosC = A*B/||A||||B|| = -7/√14√17 C = acos(-7/√14√17) = 약1.. 2022. 1. 5.
백트래킹(Backtracking) 알고리즘 설명 DFS를 기반으로 생성된 알고리즘으로, 기존 DFS는 모든 경우의 수를 찾아가기 때문에 불필요한 탐색이 존재하여 이 부분이 문제가 되는 경우가 있었다. 때문에 이를 보완하기 위해서 나온 알고리즘으로, 현재 탐색을 진행하고있는 루트가 이미 실패가 예정된 루트라면 해당 루트를 종료하고 더 이상 그 루트를 통하여 탐색을 진행하지 않고 이전으로 돌아가는 것을 백트래킹이라고 칭한다. 때문에 현재 루트의 가능성을 판단하는 조건이 잘 짜여질수록 효율이 올라가게 된다. 보통 DFS를 사용하는 문제에서, 완전탐색 시 경우의 수가 너무 많아지는 문제에 대하여 조건을 걸어서 루트를 줄이는 역할을 한다. 대표적인 백트래킹 문제인 N-Queen에서의 예시 문제를 요약하자면 퀸이 서로 겹치지 않게 NxN크기의 판에 N개의 .. 2021. 7. 30.
반응형