클로저(Closure)란, 외부 변수나 필드와 같은 '환경'을 저장하고 있는 함수이다. 나는 클로저란 개념에 대해 for문에 람다식을 적용해버린 실수덕분에 알게되었다. 람다식은 작성된 외부의 변수나 필드를 사용해 함수를 실행시키게 된다. for문의 경우 for(int i =0; i { OnClickLocationBtn(i); }); } 해당 코드와 같이 람다식이 외부의 변수 i를 참조하고 있다. 예를들어 LocationBtns의 Count가 4가 될때 for문이 끝날경우 i는 5가 되므로 람다식에 의해 OnClickLoactionBtn(i)이 실행될때 i는 무조건 5가 들어가게 된다. 이를 해결하려면 어떻게 해야할까? for(int i =0; i { OnClickLocationBtn(index); });..
라이브러리는 소프트웨어 개발에서 재사용 가능한 코드 모음이나 컴포넌트의 모임을 나타냅니다. 라이브러리는 특정 기능을 수행하는 함수, 클래스, 모듈 등으로 구성됩니다. 이러한 라이브러리는 프로그래머가 새로운 프로젝트에서 코드를 작성하지 않고 기존의 코드를 활용하여 효율적으로 작업할 수 있도록 도와줍니다. 대표적인 예시는 다음과 같습니다. 표준 라이브러리 (Standard Library): 대부분의 프로그래밍 언어에는 표준 라이브러리가 내장되어 있습니다. 이는 기본적인 데이터 구조, 알고리즘, 입출력 기능 등을 포함하고 있어 프로그래머가 이를 활용하여 빠르게 개발할 수 있도록 돕습니다. 외부 라이브러리: 외부에서 제공되는 라이브러리는 특정 기능을 수행하기 위해 개발된 것입니다. 예를 들어, 그래픽 처리, 데..
using System; using System.Collections.Generic; namespace test2 { internal class Program { static bool[] visited; static List [] graph; // 그래프 배열..? static void Main(string[] args) { // 컴퓨터의 수 int computerCount = int.Parse(Console.ReadLine()); // 연결된 쌍의 수 int connectionCount = int.Parse(Console.ReadLine()); // 그래프 초기화(1부터 시작하기 위해 크기 늘림) graph = new List[computerCount +1]; visited = new bool[comp..
해당 문제는 BFS와 DFS 모두를 이용하며 풀 수 있다. 먼저 각 알고리즘의 특징이 무엇인지 알아야한다. 1. BFS(너비 우선 탐색)란? 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다. using System; using System.Collections.Generic; class MainClass { static int[,] field; // 배추밭 배열 static bool[,] visited; // 방문 여부를 저장하는 배열 static int[] dx = { -1, 1, 0, 0 }; // 상하좌우 이동을 위한 배열 static int[] dy = { 0, 0, -1, 1 }; static int m, n; // 가로길이, 세로길이 static void ..
ODIN 개발을 하다보면 인스펙터 창이 상당히 비가시적이 되거나 복잡해지는 경우가 많은데 Odin 에셋은 이에 꽤나 도움이 된다. 인스펙터 창을 직접 사용자화 함으로써 일단 구현을 해놓으면 후에 매우 편리하게 값들을 변경할 수 있게된다.밑은 구매링크이다. 세일 기간을 노리면 50프로까지 할인을 받을 수 있으니 좋은 때를 노려보자.https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041 Odin Inspector and Serializer | 유틸리티 도구 | Unity Asset Store Use the Odin Inspector and Serializer from Sirenix on your next..
먼저 택시 기하학이란 무엇인지 알아야한다 ①,② 택시 기하학(맨해튼 거리) ③ 유클리드 기하학 해당 평면을 도시의 어떤 두 장소라고 가정한다면, 한 장소에서 다른 장소로 이동하는 최단거리는 대각선으로 가로질러 가는 것이라 생각하실 겁니다(③ 유클리드 기하학) 하지만 도시라 가정할 시 대각선으로 모든건물을 가로질러서 갈 수 없으므로 이때를 가정한다면 다른 장소로 가는 가장 최적의 길은 ①과 ②일 것입니다. 택시 기하학에서의 거리 : 택시 기하학에서의 거리 = 두 점의 x 좌표의 차 + 두 점의 y 좌표의 차 택시기하학에서는 '거리'라는 개념을 새로 정의한 것이다. ( D(T₁, T₂) = |𝑥₁ - 𝑥₂| + |y₁ - y₂| ) 따라서 각각의 거리에서 원의 넓이는 유클리드 기하학에서의 원의 넓이 = 𝜋𝑟..
항상 회전에 대해서 헷갈린 부분이 많았다. 맨날 구글을 찾아볼 수도 없는 노릇이고 한번 정리가 필요하다 생각했다. Euler VS Quaternion Euler : X, Y, Z 축으로 회전, But 어느 축으로 회전하느냐에 따라서 회전값이 달라진다. Quaternion : 막대사탕 처럼 특정 축을 꽂고 회전 Euler 값을 Quaternion으로 바꿔준다 * : 벡터의 합, 거의 모든 것을 해결시킴 Inverse : 벡터의 빼기 회전을 계산하기 위함 : transform.rotation은 Quaternion 기반 사용법 : transform. rotation = Quaternion.Euler(x, y, z) 회전 방법 transform.rotation = Quaternion.Euler(10, 20, 3..
1. Math.Pow double형만 받으며 제곱수를 구해주는 함수이다. Math.Pow(제곱할 수, 몇 제곱) 2. 배열 생성 여기서 5는 0~5라는 뜻이 아닌 배열 5개를 생성한다는 뜻이다. 맨날 헷갈린다.. string[] numS = new string[5]; 3. Substring Substring(시작할 문자열, 문자 개수)란걸 기억해두자! 4. 정답코드 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace N { class Program { static void Main(string[] args) { double answe..