✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/etc
Problem #020
🚩 문제 설명 ◾ 100! 팩토리얼의 자릿수의 합을 구하는 문제이다. n! (팩토리얼) n! = n x (n-1) x ... x 2 x 1 📑 문제 풀이 //20200302 Problem 020 #include #define LL long long using namespace std; const LL MAX = 100000LL; LL num[MAX] = { 1, }; int main() { int cnt = 0; for (int i = 1; i
Problem #019
🚩 문제 설명 ◾ 20세기에서 매월 1일이 일요일인 경우는 몇번인가 구하는 문제 ◾ 달력에 관한 기본적인 정보들이 주어진다. ◾ 1900년은 1월 1일은 월요일이다. ◾ 4/6/9/11월은 30일까지 ◾ 1/3/5/7/8/10/12월은 21일까지 있다. ◾ 2월은 28일까지, 윤년은 29일까지 있다. ◾ 1901년에서 2000년까지 셈을 센다. 윤년이란? 연도가 4로 나누어지는 해를 이른다. 하지만 400으로 나누어 떨어지지 않는 100년째는 윤년이 아니며, 400으로 나누어 떨어지면 윤년이다. 📑 문제 풀이 #include #include using namespace std; string week[7] = {"mon", "tue", "wed", "thr", "fri", "sat", "sun"}; int..
Problem #017
🚩 문제 설명 ◾ 1부터 1000까지 영어로 썼을 때 사용된 글자의 개수를 구하는 문제 ◾ 빈칸이나 하이폰은 셈에서 제외한다. ◾ 단어 사이의 and는 셈에 넣는다. ex) 342 -> three hundred and forty-two 📑 문제 풀이 #include using namespace std; int num[1000]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); //수 넣기 //1 - 19 까지 숫자 num[1] = 3; num[2] = 3; num[3] = 5; num[4] = 4; num[5] = 4; num[6] = 3; num[7] = 5; num[8] = 5; num[9] = 4; num[10] = 3; num[1..
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..