본문 바로가기
반응형

프로그래밍503

팩토리얼(Factorial, 계승)과 순열의 관계 팩토리얼(Factorial, 계승) 수학에서, 자연수의 계승 또는 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 말한다. 기호는 느낌표(!)를 쓰며 팩토리얼이라고 읽는다. 쉽게 정리하면 5! = 1×2×3×4×5 특히, 0의 계승은 1이다. n! = nPn = 1 * 2 * 3 ... (n - 2) * (n - 1) * n 순열에서는 n * (n - 1) * (n - 2) ... 3 * 2 * 1 로 나타낸다. 하지만 순서와 상관없이 값은 동일하다. 4P3 = 4 * 3 * 2를 일반화 해보면 4P3 = 4 * (4 - 1) * (4 - 2) nPr = n * (n - 1) * (n - 2) ... (n - (r - 1)) 에서.. 2024. 3. 6.
C# LINQ - Enumerable.Zip() Enumerable.Zip(IEnumerable, IEnumerable, Func) 메서드public static System.Collections.Generic.IEnumerable Zip (thisSystem.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, Func resultSelector); 매개변수first IEnumerable병합할 첫 번째 시퀀스 second IEnumerable 병합할 두 번째 시퀀스 resultSelector Func두 시퀀스의 요소를 병합하는 방법을 지정하는 함수 반환IEnumerable두 입력 시퀀스의 병합된 요소가 들어있는 IEnumerable 예제 코드int[].. 2024. 3. 5.
점화식이란 무엇인가? 점화식이란? 수학에서 점화식(漸化式) 또는 재귀식(再歸式, 영어: recurrence relation)이란 수열에서 이웃하는 두 개의 항 사이에 성립하는 관계를 나타낸 관계식이다. 프로그래밍에서 어떤 함수 안에서 자기 자신을 다시 호출하는 함수를 재귀함수라고 한다. 이때 호출하는 함수 그 자체와 재귀적으로 호출되는 함수 사이에는 어떤 상관관계가 있기 마련이다. 아래의 점화식은 이웃하는 두 개의 항 사이에 성립하는 관계에 대한 것을 말하고 있다. an과 an + 1이 인접한 항이라고 할 때, 어떤 함수를 an에 씌워 an +1 이라는 결과를 얻을 수 있다면 함수 f가 수열 {an}의 점화식이 된다. 피보나치수열을 만들 때의 재귀식을 간단히 하면 다음과 같다. function fibonacci(n) { if.. 2024. 3. 5.
문 스타일(statement style) vs 식 스타일(expression style) 문 스타일(statement style) 결과를 도출하기보다 행위를 정의하는 것은 명령형 프로그래밍(Imperative Programming) 기법의 하나다. 즉, 컴퓨터에게 무엇을 해야 할지 이야기하는 방식으로 소스 코드를 이 관점에서 설명해 보면, 컴퓨터에게 value 값과 0을 비교한 다음 posOrNeg 변수에 값을 할당하라고 지시하고 있다. class Program { static void Main(string[] args) { Console.WriteLine($"Sign of -15 is {GetSign(-15)}"); } static string GetSign(int value) { string posOrNeg; if (value > 0) { posOrNeg = "positive"; } el.. 2024. 3. 4.
C# [백준 BAEKJOON] 2407번 조합 문제 nCm을 출력한다. 입력 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) 출력 nCm을 출력한다. 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 풀이 코드 해당 문제를 풀이하기 위해선 큰 수 더하기, 조합, 메모이제이션을 익혀야 한다. 하나씩 익히면서 풀어보자. using System; using System.Linq; using System.Text; class Program { static void Main(string[] args) { string[,] ss = new string[101, 101]; var input = Console.ReadLine().Split(); var .. 2024. 3. 4.
C# [백준 BAEKJOON] 10757번 큰 수 A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000) 출력 첫째 줄에 A+B를 출력한다. 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 코드 char에 '0'을 빼는 코드가 처음에는 이해하기 힘들었지만 여기저기 찾아보니 아스키코드 관련으로 변환하기 위한 코드였다. 관련된 내용은 아래의 글을 참고하자. using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(s.. 2024. 3. 4.