삼각수, 사각수, 오각수 같은 다각수들은 아래의 공식으로 만들 수 있습니다.
삼각수 | P3,n = n(n+1)/2 | 1, 3, 6, 10, 15, ... |
사각수 | P4,n = n2 | 1, 4, 9, 16, 25, ... |
오각수 | P5,n = n(3n−1)/2 | 1, 5, 12, 22, 35, ... |
육각수 | P6,n = n(2n−1) | 1, 6, 15, 28, 45, ... |
칠각수 | P7,n = n(5n−3)/2 | 1, 7, 18, 34, 55, ... |
팔각수 | P8,n = n(3n−2) | 1, 8, 21, 40, 65, ... |
그런데 4자리 숫자 8128, 2882, 8281 (순서대로) 에는 세 가지의 재미있는 성질이 있습니다.
- 각 숫자들은 서로 꼬리를 물고 순환됩니다. 각 숫자의 뒤쪽 두 자리는 다음 숫자의 앞쪽 두 자리가 되는 식입니다.
- 각 숫자는 서로 다른 다각수인데, 여기서는 삼각수 (P3,127=8128), 사각수 (P4,91=8281), 오각수 (P5,44=2882)가 대응됩니다.
- 이런 성질을 갖는 4자리의 숫자 세 개는 이 숫자들이 유일합니다.
위와 같이 순환되면서 서로 다른 다각수(삼각수 ~ 팔각수)이기도 한 4자리 숫자 여섯 개의 유일한 순서쌍을 찾고, 그 합을 구하세요.
튜플을 사용해서 N각수의 N을 키로, 해당되는 번호를 리스트로 하는 map을 생성하고
이 map을 통해서 각 N각수에서의 순환수가 되는지를 판단한다.
내가 푼 방식은 코드가 너무 난잡해서.. 다른 사람의 풀이된 코드를 참고 및 공부할겸 올려둠.파이썬이 참.. 유용하구나..하는생각이 절로드는 코드..ㅋ