본문 바로가기
반응형

Programming/Project Euler112

[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.
[C/C++] 프로젝트 오일러 #84 모노폴리 확률(몬테카를로) 이 문제를 2015년 10월에 풀었네요. 지금 소스를 보니까, 몬테카를로(Monte Carlo) 기법을 이용해서 풀었네요. 문제가 요구하는대로 구현하고, 결과는 굉장히 많은 수로 무작위 연산을 한 것이죠. 그래도 여전히 결과가 잘 나오는 것으로 보아서는 몬테카를로 기법이 그렇게 나쁘지는 않은 기법이라고 봅니다. https://projecteuler.net/problem=84 모노폴리는 널리 알려진 게임입니다. 우리나라에서는 블루마블이라는 게임으로 소개되었습니다. 문제를 번역해보았습니다. (chatGPT로 번역) 더보기 게임 "모노폴리"에서 표준 보드는 다음과 같은 방식으로 구성됩니다: 플레이어는 GO 스퀘어에서 시작하며, 6면 주사위의 두 번의 결과를 합산하여 시계 방향으로 진행하는 스퀘어 수를 결정합니.. 2023. 5. 20.
[C/C++] 프로젝트 오일러 #83 Path sum: four ways(다익스트라) #83 문제는 난이도 25%로 설정되어 있습니다. 동적 계획법 등으로는 구현하기 어렵고, 다익스트라 알고리즘을 사용해야 합니다. 다익스트라 알고리즘 자체는 너비 우선 탐색, 프림 알고리즘과 비슷한 구현 방법으로 큐 자료구조와 우선순위 큐 자료구조의 이해가 필요합니다. https://projecteuler.net/problem=83 다익스트라 알고리즘 구현은 그래프에서 경로 찾기에서 자주 나옵니다. https://sdev.tistory.com/119 다익스트라 알고리즘 다익스트라 알고리즘은 시작점에서 다른 모든 경로로 가는 최단 거리에 대한 그래프(트리)를 만들어줍니다. 다익스트라 알고리즘을 사용하려면, 힙을 이용해서 최소의 엔티티를 찾는 것이 필요 sdev.tistory.com https://sdev.t.. 2023. 5. 6.
728x90