반응형 프로그래밍493 상황별로 appsettings.json 선택적으로 읽기 ASP .NET 코어 앱에서 appsettings.json 읽기 Configuration 클래스는 ASP .NET 코어 앱에서 빌드되고 실행될 때, 앱에 관한 설정값을 제공하는 서비스 역할을 한다. 이 서비스 자체는 프레임워크 서비스이기 때문에 별도로 서비스 컨테이너에 등록하는 과정 없이 바로 의존성 주입(dependancy injection)을 이용해서 사용이 가능하다. Startup.cs에서 사용하기 위해서 의존성 주입한 예제이다. .NET 설정 파일 우선순위 우선순위에 맞춰서 덮어쓰기를 진행한다. 순위가 높은 항목의 내용으로 덮어쓰기 된다. Command-line arguments Non-prefixed environment variables User secrets appsettings.{envir.. 2024. 4. 8. C# 메모화(Memoization) 메모화란 무엇인가? 코드 최적화를 위해 메모화(memoization) 기법을 적용할 수 있다. 메모화는 특정 입력 값에 대한 함수의 처리 결과를 기억하는 과정이라고 할 수 있다. 즉, 특정 함수에 입력 값을 전달할 때마다 프로그래밍이 결과를 기억해 두고 이후 입력 값이 같다면 함수를 다시 실행하지 않고 저장된 곳에서 결과를 얻는다. 기존 GetFactorial() using System; public partial class Program { static void Main(string[] args) { Console.WriteLine(GetFactorial(5)); } static int GetFactorial(int n) { if (n == 0) { return 1; } return n * GetFac.. 2024. 4. 5. 조합의 성질에 대해서 조합(Combination)의 성질예를 들어, 10개의 서로 다른 사탕 중 3개를 뽑아서 먹어버리면 7개가 남게 된다. 즉, 10개 중에 3개를 뽑는 방법의 수와 10개 중 7개를 남기는 방법의 수는 같다. 첫 번째 성질$$ _{n}\mathrm{C}_{r} = _{n}\mathrm{C}_{n-r} $$ 일반화하면 전체 n 개 중에서 r개를 뽑으나 n-r개를 남기나 경우의 수는 같게 된다는 것이다. 계산으로도 간단히 확인할 수 있으니 증명은 쿨하게 생략하도록 하겠다. 이 성질은 조합의 계산을 간단하게 만들어준다. 10C7 보다 10C3이 훨씬 계산하기 쉽기 때문이다. 9C1 = 9C82C1 = 2C1 두번째 성질$$ _{n}\mathrm{C}_{n} = 1,_{n}\mathrm{C}_{0} = 1 $$ .. 2024. 4. 5. C# [백준 BAEKJOON] 15552번 빠른 A+B 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P.. 2024. 4. 4. C# 지연 초기화(lazy initialization) C# 지연 초기화 지연 초기화(lazy initializtion)는 사용 시점까지 개체 생성을 연기하는 최적화 기법이다. 즉, 멤버에 대한 액세스가 이뤄지기 전에는 초기화되지 않는 개체를 정의하는 셈이다. 이를 위해 C#에서는 C# 4.0에 이르러 Lazy 클래스를 도입했다. 다음 코드는 지연 초기화를 알아보기 위한 예제이다. using System; public partial class Program { static void Main(string[] args) { LazyInitName("Matthew Maxwell"); } private static void LazyInitName(string NameOfPerson) { Lazy pn = new Lazy(() => new PersonName(Name.. 2024. 4. 4. C# 피보나치 수열 IEnumerable, IEnumerator 상속받아서 구현하기 C# 피보나치 수열 그동안 재귀로 피보나치 수열은 여러번 구현해봤다. 이번에는 IEnumerable, IEnumerator를 상속받아서 피보나치 수열을 구현해보자. using System; using System.Collections; using System.Collections.Generic; using System.Linq; public partial class Program { static void Main(string[] args) { Console.WriteLine("Enumerable Fibo"); GetFibonacciNumbers(10); } public static void GetFibonacciNumbers(int totalCount) { var fb = new FibonacciEnum.. 2024. 4. 4. 이전 1 ··· 22 23 24 25 26 27 28 ··· 83 다음