본문 바로가기

Programming456

[C/C++] 프로젝트 오일러 #110 Diophantine Reciprocals II(우선순위큐) 이 문제는 #108 문제와는 아주 비슷합니다.   https://sdev.tistory.com/1968 [C/C++] 프로젝트 오일러 #108 Diophantine Reciprocals I(소인수분해)프로젝트 오일러 문제 #108: Diophantine Reciprocals I는 다음과 같은 문제입니다:이 문제는 다음과 같은 형태의 Diophantine 방정식을 다룹니다:\[ \frac{1}{x} + \frac{1}{y} = \frac{1}{n} \] 여기서 x, y,sdev.tistory.com 요구하는 것도 비슷하지만, 문제 난이도는 #108이 30%로 책정되었지만, 이번 문제는 40%로 책정되어 있습니다. 다음과 같은 형태의 방정식을 고려합니다:\[ \frac{1}{x} + \frac{1}{y} =.. 2024. 12. 2.
[C/C++] 프로젝트 오일러 #109 Darts 프로젝트 오일러 문제 #109: “다트판 점수 계산”이 문제는 다트 게임에서 점수를 계산하는 다양한 방법을 다루는 문제입니다. 다트 게임에서는 특정 규칙에 따라 점수를 계산하며, 이 문제에서는 가능한 점수 조합을 찾는 데 중점을 둡니다.문제 요약다트판에는 1부터 20까지의 숫자가 있으며, 각각의 숫자는 싱글, 더블, 트리플로 구분됩니다.• 싱글(Single): 점수가 그대로 계산됩니다. 예: 20 -> 20점• 더블(Double): 점수가 2배로 계산됩니다. 예: 20 -> 40점• 트리플(Triple): 점수가 3배로 계산됩니다. 예: 20 -> 60점또한, 다트판에는 불스아이(Bullseye)가 있으며, 이는:• 싱글 불(Single Bull): 25점• 더블 불(Double Bull): 50점입니다.. 2024. 12. 1.
[C/C++] 프로젝트 오일러 #108 Diophantine Reciprocals I(소인수분해) 프로젝트 오일러 문제 #108: Diophantine Reciprocals I는 다음과 같은 문제입니다:이 문제는 다음과 같은 형태의 Diophantine 방정식을 다룹니다:\[ \frac{1}{x} + \frac{1}{y} = \frac{1}{n} \] 여기서 x, y, n은 모두 양의 정수입니다. 위 식을 변형하면:\[ (x - n)(y - n) = n^2 \]이 방정식의 해 (x, y)의 개수를 세는 것이 문제의 핵심입니다. 특히, 이 문제는 주어진 n에 대해 위 식을 만족하는 서로 다른 해 쌍의 개수가 1000개 이상이 되는 가장 작은 n을 찾는 것입니다.해의 개수를 셀 때 (x, y) 와 (y, x)는 같은 해로 간주되므로, 해의 개수를 정확히 세는 것이 중요합니다.요약하면, 양의 정수 n 중에.. 2024. 11. 29.
[C/C++] 프로젝트 오일러 #107 Minimal Network(프림 알고리즘) Project Euler 107번 문제는 네트워크의 최소 비용 연결에 관한 문제입니다. 주어진 그래프는 여러 개의 노드(점)와 그 노드를 연결하는 에지(선)로 이루어져 있습니다. 각 에지는 비용(가중치)을 가지고 있으며, 이 그래프는 모든 노드가 연결되어 있는 상태입니다. 즉, 어느 노드에서든 다른 노드로 이동할 수 있는 경로가 반드시 존재합니다.문제의 목표는 주어진 그래프에서 가능한 최소 비용으로 모든 노드를 연결하는 것입니다. 이를 달성하기 위해 불필요한 에지를 제거해도 되며, 단 제거 후에도 모든 노드가 연결되어 있어야 합니다. 이러한 최소 비용의 네트워크는 ’최소 신장 트리(Minimum Spanning Tree, MST)’라고 불립니다.문제를 해결하려면 다음과 같은 과정이 필요합니다. 먼저, 원.. 2024. 11. 28.
[C/C++] 프로젝트 오일러 #106 Special Subset Sums: Meta-testing(점화식) Project Euler #106: Special Subset Sums: Meta-testing 문제는 주어진 집합에서 두 개의 부분집합을 비교할 때, 그 부분집합들이 특정 조건을 만족하는지를 검사하는 경우의 수를 구하는 문제입니다.문제를 간단히 설명하면,1. 집합: 크기 n 인 자연수 집합 \(  \{1, 2, 3, \dots, n\} \)가 주어진다.2. 부분집합 조건: 두 부분집합 A 와 B 가 다음 조건을 만족하는지 확인해야 한다:• \(  |A| = |B| \) (부분집합의 크기가 동일해야 한다.)• A와 B가 서로 다른 부분집합이어야 한다.• A와 B의 합을 비교하는 것이 의미 있으려면, A와 B를 “비교 가능한 형태”로 만들어야 한다.• “비교 가능”하다는 것은, 두 부분집합이 항목의 순서에.. 2024. 11. 27.
[C/C++] 프로젝트 오일러 #105 Special Subset Sums: Testing(정렬) Project Euler #105: Special Subset Sums: Testing 문제는 집합과 관련된 수학적 속성을 탐구하며, 특정 조건을 만족하는 집합을 찾는 문제입니다. 문제의 난이도는 꽤 높은 45%로 되어 있습니다.  문제를 풀이하는 데 필요한 개념과 단계는 다음과 같습니다:주어진 집합 S는 다음 두 가지 조건을 만족해야 합니다:1. 조건 A: 두 개의 서로 다른 비어 있지 않은 부분 집합 와 에 대해, 다음이 성립해야 합니다:• \(  A \cap B = \emptyset \) (즉, A 와 B 는 서로소입니다.)• A 와 B 에 대해 \(  |A| > |B|  \) 라면 \(  \text{sum}(A) > \text{sum}(B) \) 여야 합니다.2. 조건 B: 모든 부분 집합 쌍.. 2024. 11. 26.
728x90