클로저(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 ..
먼저 택시 기하학이란 무엇인지 알아야한다 ①,② 택시 기하학(맨해튼 거리) ③ 유클리드 기하학 해당 평면을 도시의 어떤 두 장소라고 가정한다면, 한 장소에서 다른 장소로 이동하는 최단거리는 대각선으로 가로질러 가는 것이라 생각하실 겁니다(③ 유클리드 기하학) 하지만 도시라 가정할 시 대각선으로 모든건물을 가로질러서 갈 수 없으므로 이때를 가정한다면 다른 장소로 가는 가장 최적의 길은 ①과 ②일 것입니다. 택시 기하학에서의 거리 : 택시 기하학에서의 거리 = 두 점의 x 좌표의 차 + 두 점의 y 좌표의 차 택시기하학에서는 '거리'라는 개념을 새로 정의한 것이다. ( D(T₁, T₂) = |𝑥₁ - 𝑥₂| + |y₁ - y₂| ) 따라서 각각의 거리에서 원의 넓이는 유클리드 기하학에서의 원의 넓이 = 𝜋𝑟..
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..
1. 아스키 코드 소문자에 대한 아스키코드는 97~122까지다. 이를 통해 for문을 작성할 수 있었다. 2. Contains Contains는 string에 대해 포함여부를 파악할 수 있는 함수였다. 잘 써먹어보자 3. Convert.Tochar 아스키코드를 문자(char)로 변환하는 방식이다. 이와달리 문자를 아스키코드로 변환하려면 Int32를 쓰면 된다. 4. Console.Write vs Console.WriteLine a. Console.Write : 줄을 바꾸지 않고 출력한다 b. Console.WriteLine : 줄을 바꿔서 출력한다 5. 정답코드 using System; using System.Collections.Generic; using System.Linq; using System...
1. Char로 변환 char charn = char.Parse(n); 2. 아스키 코드로 변환 int answer = System.Convert.ToInt32(charn); 3. 정답 코드 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) { string n = Console.ReadLine(); //문자 한개 일때 : char로 변환 //string일때 s[0] 가 첫번째 문자의 char형태 char charn = char.Parse(n..