본문 바로가기
반응형

전체 글552

백준C# - 16194 +) 풀이 이 문제를 풀기 앞서 아래 문제를 먼저 풀어보는 것을 추천한다. 백준 C# - 11052 백준 C# - 11052 +) 풀이 DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작 code-piggy.tistory.com 11052번을 풀었음을 전제로 풀이를 진행 01 Max를 Min으로 바뀌어서 제출 문제에서 최솟값을 구하니까 Max를 Min로 제출하면 되겠다 싶어서 바꿨더니 결과가 0으로만 나왔다. p[i] = Math.Max(dp[i], dp[i - j] + p[j]); 02 기준값을 잡자 1씩 더해지는 경우를 기준으로 잡았다. dp[i] = dp[i-1] .. 2023. 12. 1.
Effective C# - Item13 정적 클래스 멤버를 올바르게 초기화하라 정적 멤버 변수를 포함하는 타입이 있다면 인스턴스를 생성하기 전에 반드시 정적 멤버 변수를 초기화 해야한다. C#에서는 정적 멤버 초기화 구문과 정적 생성자라는 두 가지 기능을 제공한다. 예시 static MyClass()는 정적 생성자이며 클래스가 처음으로 사용될 때 한 번만 호출된다. 이를 통해 정적 멤버 변수 myPiggy를 초기화 할 수 있다. public class MyClass { // 정적 멤버 변수 public static int myPiggy; // 정적 멤버 초기화 구문 static MyClass() { myPiggy = 42; } } 정적 생성자를 사용하는 대표적 사례 : 싱글톤 패턴 인스턴스가 하나만 생성되도록 보장하는 디자인 패턴 중 하나이다. 정적 생성자를 사용하여 구현할 때 정.. 2023. 12. 1.
Effective C# - Item12 할당 구문보다 멤버 초기화 구문이 좋다 클래스를 만들다보면 종종 둘 이상의 생성자를 작성해야 하는 경우가 있다. 그러면 자칫 초기화 코드를 누락하는 경우가 있는데 이러한 오류를 범하지 않으려면 생성자의 본문에서 멤버 변수에 값을 할당하기보다 멤버 초기화 구문을 사용하는 것이 좋다. 멤버 초기화 구문 생성자에게 멤버 변수에 값을 할당하는 대신에 해당 변수를 선언하는 동시에 초기값을 설정하는 방법이다. 01 멤버 초기화 구문의 사용 public class MyClass { //컬렉션을 선언하는 동시에 초기화 private List labels = new List(); } 02 멤버 초기화 구문과 생성자 멤버 초기화 구문에서 변수를 초기화하면 생성자 본문에서 해당 변수를 초기화할 필요가 없다. 멤버 초기화 구문이 생성자보다 먼저 실행되므로 생성자에.. 2023. 11. 30.
백준 C# - 11052 +) 풀이 DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작은 부분 문제로 나누어 해결하며 이미 계산된 작은 문제의 결과를 풀이 점화식 찾기 01 손으로 적어보자 dp와 Pn과의 관계를 한 번 손으로 적어보면 아래와 같이 나오는 것을 확인할 수 있다. 02 점화식 위의 경우의수들 중 제일 큰 값을 골라서 dp[i]에 넣어주면 된다. 그러므로 점화식을 구해보면 아래와 같이 나온다. 코드 전문 using System; namespace baek2 { class Program { static void Main() { int num = int.Parse(Console.Read.. 2023. 11. 30.
백준 C# - 9095 +)풀이 DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작은 부분 문제로 나누어 해결하며 이미 계산된 작은 문제의 결과를 풀이 01 점화식 찾기 n= 1,2,3,4일때를 직접 그리면 서로의 관계를 찾아 볼 수 있다. 아래 그림을 보면 n = 4에서 n = 1,2,3의 조합으로 만들어지는 것을 확인할 수 있다. 점화식 코드 전문 using System; namespace baek2 { class Program { static void Main() { int num = int.Parse(Console.ReadLine()); while(num>0) { int n = int.. 2023. 11. 30.
백준C# - 11727 +) 풀이 이 문제를 풀기 앞서 아래 문제를 먼저 풀고 오는 것을 추천한다. 백준 C# - 11726 백준 C# - 11726 +) 풀이 DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작 code-piggy.tistory.com 11726을 풀고 나서 아래의 점화식을 얻었다. 2x2와 관련된 부분만 추가해주면 된다. (자세한 설명은 11726페이지 참조) 01 2x2 끝에 부분이 2x2인 경우의 수는 dp[i-2]와 같으므로 원래 있던 점화식에 이 부분만 추가해 주면 된다. 코드 전문 using System; namespace baek2 { class Program {.. 2023. 11. 30.
반응형