42. 프로젝트 오일러 #42 : 삼각수 단어
이 문제는 알고리즘이 크게 필요하지는 않습니다.그래서인지 문제의 난이도는 5%입니다. 문제 자체도 상당히 가벼운 편이고요. 검사해야할 단어의 갯수도 많지 않습니다. 이 문제는 영어문자를 A->1, B->2, .. 형식으로 단어를 바꾸면, 숫자의 나열이 되는데, 이 숫자들의 합이 삼각수인 가만 검사하면 됩니다. 삼각수라는 것은 1~n까지의 합 형태가 되면 됩니다. 1, 3, 6, 10, 15, 21, ... 등등이 모두 삼각수입니다. 사실 단어의 수가 길지 않으므로, 간단하게 삼각수 테이블을 만들고 해당 수가 삼각수인지 검사하는 것이 가장 간단하겠죠. 단어의 길이가 40글자라고 해도 글자 하나당 26까지밖에 없으므로 대략 1200까지의 삼각수만 구하면 됩니다. 그러고 나서 해당 값이 채워졌는지만 검사하면 ..
2016. 5. 24.
34. 프로젝트 오일러 #34 : 자릿수의 팩토리얼 합
연달아서 난이도 5% 정도의 문제네요. 이번 문제는 각각의 자릿수의 팩토리얼 합이 자신이 되는 숫자를 찾는 것입니다. 예를 들어서 145란 숫자는, 가 됩니다. 이번 문제는 이와 비슷한 숫자들의 합을 구하는 것입니다. 이제 프로젝트 오일러를 이정도까지 진행하셨다면, 십진수의 자릿수를 빼는 것에는 다들 어느정도 경험이 있을 것이라 생각합니다. 제 경우에는 각 자릿수의 팩토리얼 값을 미리 저장해서 사용했습니다. 9! = 362880 이므로, 대충 6자릿수자일거라고 생각하면 됩니다. 그래서 숫자범위를 그렇게 정했습니다. 제가 작성한 프로그램은 다음과 같습니다. #include int main() { int facts[10] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 36280..
2015. 4. 13.