본문 바로가기
반응형

brute force8

[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++] 프로젝트 오일러 #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.
[C/C++] 프로젝트 오일러 #88 Product-sum Numbers(단순 해결) 이 프로그램은 Project Euler 문제 #88, Product-sum Numbers 문제를 해결하기 위해 작성된 C 코드입니다. 이 문제는 “product-sum number”와 관련된 문제로, 숫자들의 곱과 합이 같은 여러 가지 조합을 찾는 것입니다.  문제 링크는 다음과 같습니다.https://projecteuler.net/problem=88 다음은 코드의 각 부분을 설명합니다.코드 분석1. 상수 정의 및 배열 초기화#define MAXK 12000int minv[MAXK + 1];int mcount = 0;MAXK는 문제에서 요구하는 k 값의 최대 크기 (12000)를 정의한 것입니다. minv 배열은 k 값마다 최솟값인 n을 저장합니다. mcount는 찾아낸 값의 개수를 카운트합니다.2. 재.. 2024. 10. 31.
[C/C++] 프로젝트 오일러 #87 Prime Power Triples(단순 반복) 이 문제는 난이도 20%로 측정된 것입니다.단순하게 소수를 구하고 세개의 수를 제곱, 세제곱, 네제곱한 결과가 어떤 수가 나오는지 계산하는 것입니다.단순 작업만으로도 해결이 되는 문제죠.  이 코드는 프로젝트 오일러 문제 #87 “Prime Power Triples”를 해결하기 위해 작성된 프로그램입니다. 이 문제의 목표는 50,000,000 미만의 숫자 중에서 \(p_1^2 + p_2^3 + p_3^4\)  형식을 만족하는 서로 다른 수의 개수를 찾는 것입니다. 여기서 \(p_1\), \(p_2\), \(p_3\)는 모두 소수입니다. 아래는 코드의 주요 부분에 대한 설명입니다.코드 분석상수 및 배열 정의:#define LIMIT 50000000 static int primes\[1000000\], p.. 2024. 10. 28.
[C/C++] 프로젝트 오일러 #86 Cuboid Route(Brute Force) 난이도는 35%의 문제이지만, 단순 방법으로 처리하면 그래도 적당한 시간에 해답을 찾을 수 있습니다.  문제는 각 모서리의 길이가 정수인 직육면체의 대척점 길이가 정수가 되는 경우를 찾는 것이죠. \(W \times H \times D\) 형태에서 대척점의 길이는 \( \sqrt{ W^2 + H^2 + D^2 } \)이 됩니다. 이것이 정수가 되기 위해서는 \( W^2 + H^2 + D^2 \)이 제곱수여야 합니다. 수학적인 방법도 존재하겠죠. 피타고라스 수를 연결하면 될 듯 합니다. 3-4-5 와 5-12-13 은 연결이 됩니다. 즉, \(3^2 + 4^2 + 12^2\)은 제곱수가 될 수 있는 것이죠. 문제의 출처는 다음과 같습니다.https://projecteuler.net/problem=86 제가.. 2024. 10. 18.
[C/C++] 프로젝트 오일러 #85 Counting Rectangles(Brute Force) 이번 문제는 난이도는 15% 정도입니다.문제 자체가 어려운 것은 아니어서, 보통은 단순한 방법으로 풀어보고, 알고리즘 효율을 꾀하는 편이긴 하지만, 여기서는 단순한 방법으로 문제를 풀어보았습니다.  문제의 출처는 다음과 같습니다.https://projecteuler.net/problem=85 이 프로그램은 Project Euler의 문제 85를 해결하기 위한 C/C++ 프로그램입니다. 문제의 목표는 주어진 제한 조건 하에서 사각형의 개수를 계산하는 것입니다. 이 코드는 특정 사각형 수와 목표 값 사이의 오차가 가장 작은 직사각형의 크기를 찾으려고 합니다. //------------------------------------------------// Project Euler #85 - Counting.. 2024. 10. 8.
728x90