✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺

    Problem #015

    🚩 문제 설명 ◾ 20 x 20 격자의 좌상단에서 우하단으로 가는 경로의 수를 구하는 문제 ◾ 다이나믹 프로그래밍 문제로 보인다. 📑 문제 풀이 #include #include #define ll long long using namespace std; ll d[21][21]; ll grid(ll r, ll c) { if (d[r][c] > 0) return d[r][c]; if (r == 0 && c == 0) return 1; if (r == 1) { d[r][c] = c + 1; } else if (c == 1) { d[r][c] = r + 1; } else { d[r][c] = grid(r, c - 1) + grid(r - 1, c); } return d[r][c]; } int main() { cl..

    Problem #014

    🚩 문제 설명 ◾ 백만 이하로 시작하는 우박수 중에서 가장 긴 과정을 거치는 수를 구하는 문제. 우박수란? (hailstone sequence) 콜라츠 추측에서 나오는 수열이며 콜라츠 추측은 3n+1 추측, 울람 추측이라고 불리기도 한다. 1. n이 짝수 일때, n = n / 2 2. n이 홀수 일때, n = 3n + 1 이러한 과정을 거친 수를 우박수라고 하며 콜라츠의 추측은 임의의 자연수가 위와 같은 과정을 거쳐 항상 1이 된다는 추측이다. 📑 문제 풀이 #include #include #define ULL unsigned long long using namespace std; ULL go(ULL n) { if (n

    Problem #013

    🚩 문제 설명 ◾ 50자리 수의 수가 100개가 주어진다. ◾ 해당 수들을 다 더한 합의 10번째 자리 수는 무엇인지 구하는 문제 📑 문제 풀이 #include #define ll long long using namespace std; string str = "371072875339021027987979982208375902465101357402504637693767749000971264812489697007805041701826053874324986199524741059474233309513058123726617309629919422133635741615725224305633018110724061549082502306758820753934617117198031042104751377806324667689..

    Problem #011

    🚩 문제 설명 ◾ 20 x 20 격자에서 연속된 네 숫자의 곱들 중 최댓값을 구하는 문제 ◾ 위와 같이 20길이의 정사각형 격자가 주어진다. ◾ 연속된 수를 곱할 때, 방향은 아래와 같다. 수평 수직 오른쪽 대각선 왼쪽 대각선 ◾ 각 수자는 2자리 숫자 📑 문제 풀이 #include using namespace std; // 보기좋게 tab을 한것이니 코드 돌려볼때는 붙여놓기 string str = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08\n 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00\n 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 ..

    Problem #010

    🚩 문제 설명 ◾ 200만 이하의 소수의 합을 구하는 문제 소수란? 1과 자기자신으로 밖에 나누어지지 않는 수 📑 문제 풀이 ✅ 에라토스테네스의 체 #include #define MAX 2000000 using namespace std; bool check[MAX + 1]; int main() { for (int i = 2; i * i

    Problem #008

    🚩 문제 설명 ◾ 1000자리 숫자 안에서 이어지는 5자리의 곱 중에서 최댓값을 찾는 문제 ◾ 5개씩 끊으면 되겠구나 생각을 해본다. ◾ 1000자리 숫자는 저렇게 주어진다. 📑 문제 풀이 #include #include using namespace std; string num = "73167176531330624919225119674426574742355349194934969835203127745063262395783180169848018694788518438586156078911294949545950173795833195285320880551112540698747158523863050715693290963295227443043557668966489504452445231617318564030987111..