반응형 전체 글553 백준 C# - 15652 +) 풀이 N과 M(4)번 문제이다. 앞서 N과 M(2)번 문제와 비슷한 문제이다. 하지만 2번과 달리 4번에서는 같은 숫자를 골라도 된다. N과 M(2)번 알고리즘 살펴보기 if (!visited[i]) { visited[i] = true; arr[depth] = i; Dfs(i, depth+1); visited[i] = false; } N과 M(4) 알고리즘 자릿수에 같은 숫자가 연속으로 오지 않게하기 위해 visited를 사용하였는데 여기에서 방문부분이 필요 없으므로 이와 관련된 부분을 삭제하면 된다. arr[depth] = i; Dfs(i,depth + 1); 코드 전문 using System; using System.Text; namespace baek2 { class Program { static int.. 2024. 1. 19. 백준 C# - 15651 +) 풀이 N과 M(3)번 문제이다. 만약 N과 M(1)과 N과 M(2)번을 풀고 왔으면 쉽게 풀 수 있다. 예제 출력을 보면 모든 조합이 다 출력되는 것을 확인할 수 있다. (아래 참조) 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4 N과 M(1)번 알고리즘 살펴보기 앞서 N과 M(1)번에서는 자릿수에 같은 숫자가 연속으로 오지 않게하는 문제였는데 여기에서 이를 적용하기 위해 방문표시를 했는데 여기에서 방문부분을 없애게 되면 전체 조합을 구할 수 있게 된다. if(!visited[i]) { visited[i] = true; arr[depth] = i; DFS(depth + 1); visited[i] = false; } 전체 조합의 경우를 구하는 .. 2024. 1. 19. 백준 C# - 15650 +)풀이 이 문제를 풀기 앞서 아래 문제를 먼저 풀고 오는 것을 추천한다. 백준 C# - 15649 +) 풀이 대표적인 백트래킹 문제이다. 백트래킹 모든 경우의 수를 탐색하며 더 이상 해가 나올 것 같지 않으면 이전으로 돌아가서 다른 경우를 탐색한다. 풀이 원래 알던 DFS 알고리즘에서는 visited[i] = tru code-piggy.tistory.com N과 M(1)과의 차이점은 뒤에 숫자들이 앞의 숫자들보다 커야한단느 것이다. 출력 예시를 보면 더 쉽게 이해할 수 있다. 1 2 1 3 1 4 2 3 2 4 3 4 N과 M() 주요 알고리즘 N과 M(1)과의 차이점은 매개변수 at이 추가된 것이다. 이는 재귀가 어디서부터 시작하는지 나타내는 변수이다. public static void Dfs(int at, .. 2024. 1. 19. 백준 C# - 2839 using System; using System.Text; using System.Threading; namespace baek2 { class Program { public static void Main() { int a = int.Parse(Console.ReadLine()); int answer = 0; int b = a / 5; while(true) { if(b < 0) { Console.WriteLine(-1); return; } if((a - ( b * 5 ) )% 3 == 0) { answer = (a - (5 * b) ) / 3; break; } b--; } Console.Write(answer+b); } } } 2024. 1. 19. C# - await와 async Sum을 구하는 코드로 예시 namespace WinFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Run(); } private void Run() { } private int Calc(int n) { int result = 0; for (int i = 1; i Calc(10)); int sum = await task1; // 상태를 저정한다음 다른 UI처리 label1.Text = sum.ToString(); } Task처리 뿐만 아니라 다른 UIThread를 block하지 않기 때문에 다.. 2024. 1. 19. C# - Thread vs Task 클래스 + EAP/APM/TAP Thread(스레드)CPU가상화이다. 그러므로 CPU가 없는데 많은 척하는 것이다.Multithreading(멀티스레드)하나의 프레스가 여러 개의 스레드를 동시에 실행하여 다중 작업을 수행하는 것을 의미한다. 이는 CPU의 가상화를 통해 마치 여러개의 CPU가 동시에 작업하는 것처럼 보이게 한다.스레드는 정말 가벼운 자원인가?스레드는(프로세스 보다 가볍지만)매우 무거운 리소스이다. 스레드를 하나 만드는데 필요한 공간비용과 시간비용DLL(Dynamic Link Libraries)는 외부에서 호출되는 함수,데이터,리소스등을 가진 코드 및 데이터 라이브러리이다. 여러 스레드가 DLL을 사용하는 경우 동시 접근에 대한 적절한 동기화 매커니즘이 필요하므로 이로 인해 리소스 소비가 증가한다. 컴퓨터에서 가장 적합한.. 2024. 1. 19. 이전 1 ··· 22 23 24 25 26 27 28 ··· 93 다음 반응형