본문 바로가기

full search3

[C/C++] 프로젝트 오일러 #98 Anagramic Squares(완전 탐색) Project Euler 문제 98번은 “아나그램 수의 쌍”에 관한 문제입니다. 문제는 다음과 같은 상황을 제시합니다.먼저, 아나그램이란 한 단어의 문자들을 재배열하여 다른 단어를 형성하는 것을 말합니다. 예를 들어, “LISTEN”과 “SILENT”은 서로 아나그램입니다. 이 문제에서는 단어 목록이 제공되며, 이 목록에서 아나그램 쌍을 찾아야 합니다.여기에서 한 걸음 더 나아가, 아나그램 쌍에 특정 조건을 부과합니다. 각 아나그램 단어 쌍에 대해, 이를 숫자로 매핑하여 정사각형 수가 되도록 만들어야 합니다. 예를 들어, “CARE”와 “RACE”가 아나그램이라면, “CARE”를 숫자 1296으로, “RACE”를 숫자 9216으로 매핑했을 때 둘 다 정사각형 수라면 유효한 쌍이 됩니다.문제는 주어진 단어.. 2024. 11. 20.
[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.