본문 바로가기
반응형

Programming456

[C/C++] 프로젝트 오일러 #91 Right Triangles with Integer Coordinates(전체 탐색) Project Euler #91 문제는 좌표 평면에서 원점을 포함하여 세 점을 선택해 직각삼각형을 구성하는 경우의 수를 찾는 문제입니다. 문제의 주요 요구 사항은 다음과 같습니다:1. 평면의 오른쪽 위에 있는 정사각형 영역(예를 들어, 크기  내의 점)을 대상으로 합니다.2. 직각 삼각형의 세 꼭짓점 중 하나는 항상 원점(0,0)에 고정됩니다.3. 나머지 두 점을 선택해 직각이 될 수 있는 경우를 찾습니다.4. 삼각형의 직각은 두 변이 x축 또는 y축과 평행한 경우로 한정됩니다.이 문제는 가능한 모든 점 조합을 조사하여 직각 조건을 만족하는 경우를 계산해야 하므로, 효율적인 알고리즘과 중복을 방지하는 로직이 필요합니다.  제가 작성한 소스는 다음과 같습니다.//-----------------------.. 2024. 11. 11.
[C/C++] 프로젝트 오일러 #90 두개의 주사위로 제곱수 만들기(전체 검색) 프로젝트 오일러 #90번 문제는 “두 개의 주사위로 제곱수를 만들기”라는 제목을 가지고 있습니다. 문제의 요약은 다음과 같습니다.1. 두 개의 6면체 주사위 세트를 사용하여 숫자 쌍을 만들어 특정한 제곱수를 표현하려고 합니다.2. 각 주사위는 0에서 9 사이의 숫자 중 6개를 선택하여 각 면에 새길 수 있습니다.3. 두 주사위를 굴려 나온 숫자 조합으로 제곱수 1, 4, 9, 16, 25, 36, 49, 64, 81을 표현해야 합니다.• 예를 들어, 01은 1의 제곱, 49는 7의 제곱을 의미합니다.4. 숫자 6과 9는 서로 교환 가능하다고 가정합니다.목표: 두 주사위에서 선택할 수 있는 숫자 조합을 정하여 위의 모든 제곱수를 표현할 수 있는 경우의 수를 계산하는 것입니다.이 문제는 조합론과 경우의 수를.. 2024. 11. 9.
[C/C++] 백준 #3055 탈출(너비 우선 탐색) 백준 온라인 저지 문제 #3055는 “탈출”이라는 제목의 문제로, 주어진 2차원 맵에서 고슴도치가 물을 피하면서 동굴로 탈출하는 경로를 찾는 시뮬레이션 문제입니다. 문제의 주요 포인트는 다음과 같습니다.문제 설명1. 맵 구성: 고슴도치는 S로, 동굴은 D로 표시되어 있습니다. 물은 *로 표시되며 매 시간마다 상하좌우로 확산합니다. 빈 공간은 .로 표현됩니다.2. 목표: 고슴도치는 물이 찰 예정인 칸을 피하면서 최소한의 이동 시간으로 동굴(D)에 도달해야 합니다.3. 제약 조건:• 고슴도치는 한 번에 상하좌우로 한 칸씩 움직일 수 있습니다.• 물은 매 시간마다 고슴도치보다 먼저 확산되어 고슴도치의 경로를 막을 수 있습니다.4. 출력 조건: 고슴도치가 동굴로 탈출할 수 있는 최소 시간을 출력하며, 탈출이 불.. 2024. 11. 7.
[C/C++] 프로젝트 오일러 #89 Roman Numerals(계산) 이번 문제는 로마 숫자와 관련된 것입니다. 프로젝트 오일러 문제 89: 로마 숫자 최적화로마 숫자는 전통적으로 다음과 같은 문자 조합으로 이루어집니다:• I = 1• V = 5• X = 10• L = 50• C = 100• D = 500• M = 1000그리고 로마 숫자는 보통 큰 숫자가 작은 숫자보다 앞에 오는 방식으로 작성됩니다. 예를 들어, VII는 7입니다(5 + 1 + 1). 하지만 더 작은 로마 숫자 기호가 더 큰 숫자 앞에 오면 그 값을 빼는 방식으로 표현할 수 있습니다. 예를 들어, IV는 4이고, IX는 9입니다.문제:주어진 로마 숫자를 가장 간단하게 표현했을 때, 몇 개의 문자를 절약할 수 있는지 계산하는 것입니다.1. 로마 숫자들을 최적화하여 가장 짧은 형태로 바꿉니다.2. 변환 전의.. 2024. 11. 1.
[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.
728x90
반응형