목록언어 (69)
Machineboy空
ユニオンファインド木の定義グループ分けを管理するデータ構造です。Union:グループ同士を併合(へいごう)Find:ある要素がどのグループに属して(ぞくして)いるかを見つけるクラスカル法(Kruskal Algorithm)の一つ。最小全域(ぜんいき)木問題をとくアルゴリズムの一つ。①ファインドユニオンファインド木において、ある要素の根を求めることp は q の根であるusing System;class Program{ static int[] arr; static void Main() { int n = int.Parse(Console.ReadLine()); arr = new int[n]; var line = Console.ReadLine().Split(); ..

方方向リストの定義以下の操作をおこなえるデータ構造ですリストの先頭、末尾(まつび)に要素を追加・削除(さくじょ)する O(1)リストの特定の位置に定数個の要素を追加・削除する 개수가 고정(3개 추가 등)O(N)リストの特定の位置にK個の要素を追加・削除する개수가 입력에 따라 달라짐(개수의 절반 등)O(N+K)リストの特定の位置の要素を参照する O(N)方方向リストの作成value要素を保持する配列先頭と、末尾の要素の値 = -1で初期化next_ptr次のノードのインデックスを保持する配列先頭の要素の値=1023, 末尾の要素の値= -1で初期化back末尾の1つ前の要素のインデックスを保持する変数0で初期化empty_min_idxvalueに要素が入っていない最も小さいインデックスを保持する変数1で初期化ソースコードusing System;class Program{..

프로세스란? 실행 중인 프로그램이다. 운영 체제는 이러한 프로그램의 실행, 즉 프로세스를 관리하기 위해, 적절하게 메모리를 사용한다. 메모리를 논리적 개념으로 두 가지 영역으로 구분할 수 있는데,운영 체제가 직접 자원을 제어하는 영역인 커널 영역, 사용자가 직접 제어할 수 있는 사용자 영역이 있다. 예를 들어 내가 지금 알고리즘 문제를 풀기 위해 VS Code를 실행해 C# 스크립트 하나를 생성했다고 하자. VS Code라는 프로그램은 사용자 영역에서 실행되는 프로세스가 되며,C# 스크립트에서 *을 찍는 코드를 작성하고 제대로 작동하는지 콘솔창에 띄워보고자 한다면,C#스크립트는 컴파일 되어 .exe 파일 형식으로 변환되고, 또 다른 실행 프로세스가 되는 개념이다. 사용자 메모리 영역은 대표적으로 스택 영..
using System;using System.Linq;struct User{ public string nickname; public int old; public DateTime birth; public string state; public User(string nn, int old, DateTime dt, string st){ this.nickname = nn; this.old = old; this.birth = dt; this.state = st; }}class Program{ static void Main() { int n = int.Parse(Console.ReadLine()); ..
제곱 관련Math.Pow(,)int result = Math.Pow(2,3);// 2^3 = 8 즉, 2의 3제곱Math.Sqrt()int result = Math.Sqrt(16);// 16의 제곱근 = 4절댓값Math.Abs()int result = Math.Abs(-10); // 10반올림, 반내림 관련Math.Ceiling()주어진 값보다 크거나 같은 가장 작은 정수 반환.double result = Math.Ceiling(2.3); // 3 Math.Floor()주어진 값보다 작거나 같은 가장 큰 정수 반환.double result = Math.Floor(2.3); // 2Math.Round()0.5 기준으로 주어진 값 반올림double result = Math.Round(2.3); // 2do..
string[] inputs = Console.ReadLine().Split();여기서 NullReferenceException이 발생되었다.이유는 즉슨, Console.ReadLine()이 Null일 때 Split을 해주려고 해서 였다. Split하기 전에 null인지 체크해주었더니 해결. string input = Console.ReadLine();if (string.IsNullOrWhiteSpace(input)){ return; }string[] edge = input.Split(); https://learn.microsoft.com/ko-kr/dotnet/api/system.nullreferenceexception?view=net-8.0 NullReferenceException 클래스 (Syst..
문제 풀이시, 입력을 좀 더 효율적으로 처리하기 위해서 정리해둔다.입력: 입력값을 정수로 바꾸기string input = Console.ReadLine();int num = int.Parse(input);int input = int.Parse(Console.ReadLine());입력: 여러 개의 입력값을 공백으로 구분하여 나누기string input = Console.ReadLine();string[] splited = input.Split(' ');string[] input = Console.ReadLine().Split();입력: 입력 길이가 정해져 있지 않은 경우while(true){ string input = Console.ReadLine(); if(input == null) bre..