본문 바로가기
반응형

Programming456

[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.
[C/C++] 프로젝트 오일러 #104 Pandigital Fibonacci Ends(단순반복) 프로젝트 오일러 문제 #104: Pandigital Fibonacci Ends는 피보나치 수열의 특성과 판디지털(pandigital) 숫자의 개념을 결합한 문제입니다.문제 요약:1. 피보나치 수열은 다음과 같이 정의됩니다:• \(  F_1 = 1  \), \(  F_2 = 1 \)• \(  F_n = F_{n-1} + F_{n-2} \) (n ≥ 3)2. 판디지털 숫자란 숫자 1부터 9까지의 모든 숫자를 정확히 한 번씩 포함하는 숫자를 말합니다. (예: 123456789, 987654321 등)3. 문제의 목표는 다음 두 조건을 모두 만족하는 가장 작은 피보나치 수 \(  F_n \) 의 인덱스 n를 찾는 것입니다:• \(F_n\) 의 앞 9자리 숫자가 판디지털이어야 함.• \(F_n\) 의 뒤 9자리 .. 2024. 11. 25.
728x90
반응형