분류 전체보기582 [C/C++] 프로젝트 오일러 #113 Non-bouncy Numbers(수학) Project Euler 문제 113번은 숫자가 “증가형(increasing)” 혹은 “감소형(decreasing)” 형태인 ‘비탄력적(non-bouncy)’ 수의 개수를 구하는 문제입니다. 이 문제의 핵심 개념을 다음과 같이 정리할 수 있습니다. 1. 증가하는 수(Increasing number): 왼쪽에서 오른쪽으로 읽을 때, 각 자리수가 이전 자리수보다 작아지지 않는(즉, 비내림(non-decreasing) 순서) 수를 말합니다. 예를 들어, 112233이나 8999는 모두 증가하는 수에 해당합니다. 2. 감소하는 수(Decreasing number): 왼쪽에서 오른쪽으로 읽을 때, 각 자리수가 이전 자리수보다 커지지 않는(즉, 비내림(non-increasing) 순서) 수를 의미합니다. 예를 들어.. 2024. 12. 13. [C/C++] 프로젝트 오일러 #112 Bouncy Numbers(단순반복) Project Euler 문제 112, “Bouncy Numbers”는 숫자의 특성을 분석하는 문제입니다. 여기서 “Bouncy Number”란 증가하는 숫자도 아니고 감소하는 숫자도 아닌 숫자를 의미합니다. 증가하는 숫자는 각 자릿수가 왼쪽에서 오른쪽으로 갈수록 같거나 커지는 숫자입니다. 예를 들어 123, 455, 789와 같은 숫자는 증가하는 숫자입니다. 반대로 감소하는 숫자는 각 자릿수가 왼쪽에서 오른쪽으로 갈수록 같거나 작아지는 숫자를 말합니다. 예를 들어 321, 876, 954와 같은 숫자는 감소하는 숫자입니다. 그러나 132와 155349 같은 숫자는 증가하거나 감소하는 패턴이 없으므로 Bouncy Number로 분류됩니다. 문제는 Bouncy Number의 비율이 특정 퍼센티지(예: 50.. 2024. 12. 9. [C/C++] 프로젝트 오일러 #111 Primes with Runs(히스토그램) 프로젝트 오일러 문제 111번, “Primes with Runs”는 소수와 숫자 패턴의 반복성을 중심으로 하는 문제입니다. 이 문제는 자리수가 m인 숫자 집합을 대상으로 합니다. 예를 들어 m이 4라면, 4자리 숫자인 1000에서 9999까지의 숫자를 다루게 됩니다.문제의 주요 관심사는 자리수가 m인 숫자 중에서 특정 숫자가 반복적으로 나타나는 패턴을 찾는 것입니다. 여기서 “반복”은 특정 숫자가 얼마나 많이 나타나는지를 의미합니다. 예를 들어, 4자리 숫자 3331에서는 숫자 3이 세 번 반복됩니다. 이러한 숫자 중에서도 소수인 숫자만을 대상으로 합니다. 소수란 1과 자기 자신만으로 나누어떨어지는 숫자이므로, 여기서 다루는 숫자가 소수인지 확인하는 과정이 필수적입니다.각 숫자 집합에 대해 가장 많이 반.. 2024. 12. 5. [C/C++] 프로젝트 오일러 #110 Diophantine Reciprocals II(우선순위큐) 이 문제는 #108 문제와는 아주 비슷합니다. https://sdev.tistory.com/1968 [C/C++] 프로젝트 오일러 #108 Diophantine Reciprocals I(소인수분해)프로젝트 오일러 문제 #108: Diophantine Reciprocals I는 다음과 같은 문제입니다:이 문제는 다음과 같은 형태의 Diophantine 방정식을 다룹니다:1x+1y=1n 여기서 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 방정식을 다룹니다:1x+1y=1n 여기서 x, y, n은 모두 양의 정수입니다. 위 식을 변형하면:(x−n)(y−n)=n2이 방정식의 해 (x, y)의 개수를 세는 것이 문제의 핵심입니다. 특히, 이 문제는 주어진 n에 대해 위 식을 만족하는 서로 다른 해 쌍의 개수가 1000개 이상이 되는 가장 작은 n을 찾는 것입니다.해의 개수를 셀 때 (x, y) 와 (y, x)는 같은 해로 간주되므로, 해의 개수를 정확히 세는 것이 중요합니다.요약하면, 양의 정수 n 중에.. 2024. 11. 29. 이전 1 2 3 4 5 ··· 97 다음 728x90