본문 바로가기
반응형

프로그래밍501

정의역 vs 공역 vs 치역 집합론(集合論, set theory)에 대해서 함수형 관련 프로그래밍을 공부하다 보니 수학에 대해서 조금씩 공부하고 있다. 오늘은 집합론에서 다루는 정의역, 공역, 치역에 대해서 알아보려고 한다. 정의역(定義域, domain) 역은 '영역, 구역'을 뜻한다. 정의역은 '함수가 정의된 영역'을 말한다. 즉 함수에 입력되는 인자를 뜻한다. 공역(共域, codomain) 공은 공동, 공통, 공존 등에 쓰이는 한자로 함께라는 뜻이다. 공역은 '정의역'에 대응하는 영역'이라는 의미로, 함숫값이 존재하는 영역이다. 치역(値域, range) 치는 가치, 수치 등에 쓰이는 한자로, '값'이란 뜻이다. 여기서 값이란 함수의 값을 말하며, 치역은 함숫값의 범위를 뜻한다. 실제로 함수에 정의역을 입력해서 나온 값의 범위를 .. 2024. 3. 12.
통분에 대해서 알아보자 통분(通分, reduction to common denominator)이란? 수학에서 분모가 다른 2개 이상의 분수의 분모를 같게 하는 작업을 말한다. 쉽게 말하면 분모가 다른 분수들의 분모를 분모들의 공배수로 바꾸는 것이다. 이렇게 바뀐 분모를 공통분모라고 한다. 통분을 하려면 공배수 공약수 최대공약수 최소공배수 의 관계를 알야 한다. 통분시에 꼭 최소공배수로만 할 필요는 없으며, 아무 공배수 중에 하나로 통분하면 된다. 가장 쉽게 통분하는 방법은 분모의 곱으로 통분하는 것이다. 다만, 최소공배수가 아니라면 약분을 해야 기약분수가 된다. 통분을 해야 하는 이유 대개 분모가 다른 두 분수의 크기를 비교하거나 분수의 덧셈, 뺄셈을 해야 할 때 통분을 한다. 통분한 이후에 분자의 크기를 서로 비교하면 어느 .. 2024. 3. 12.
C# [백준 BAEKJOON] 2960번 에라토스테네스의 체 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N, max(1, K) < N ≤ 1000) 출력 첫째 줄에 K번째 지워진 수를 출력한다. 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이.. 2024. 3. 11.
C# [백준 BAEKJOON] 9020번 골드바흐의 추측 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수.. 2024. 3. 11.
C# [백준 BAEKJOON] 10992번 별 찍기 - 17 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 10992번: 별 찍기 - 17 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 풀이 코드 using System; using System.Text; class Program { static void Main(string[] args) { var input = Console.ReadLine(); var count = Int32.Parse(input); var sb = new StringBuilder(); for (int i = 0; i < count; i++) { for (int j = count - i;.. 2024. 3. 8.
C# [백준 BAEKJOON] 2445번 별 찍기 - 8 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 코드 기존에 작성했던 별찍기를 응용해서 풀이가 가능하다. * ** *** **** ***** **** *** ** * 이렇게 작성한 코드를 동일하게 반전시켜서 출력하면 해당 문제의 풀이가 가능하다. using System; using System.Text; class Program { static void Main(string[] args) { var input = Console.ReadLin.. 2024. 3. 8.