1. 9^5 의 5배는 295245
2. 즉 최댓값은 295245 라고 생각하고 풀었다.
3. 지금 생각해보니 더 높을수도 있겠다. (증명 또는 테스트 필요)
4. 결론적으로는 visited 라는 배열로 반복을 확인하고, list 에 넣으면서 값을 검사한다.
시간복잡도: O(295245) ??
공간복잡도: O(N)
문제
다음과 같이 정의된 수열이 있다.
- D[1] = A
- D[n] = D[n-1]의 각 자리의 숫자를 P번 곱한 수들의 합
예를 들어 A=57, P=2일 때, 수열 D는 {57, 74(=5^2+7^2=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, …}이 된다. 그 뒤에는 앞서 나온 수들(57부터가 아니라 58부터)이 반복된다.
이와 같은 수열을 계속 구하다 보면 언젠가 이와 같은 반복수열이 된다. 이 때, 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 구하는 프로그램을 작성하시오. 위의 예에서는 {57, 74, 65, 61}의 네 개의 수가 남게 된다.
입력
첫째 줄에 A(1≤A≤9999), P(1≤P≤5)가 주어진다.
출력
첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.
예제 입력 1
57 2
예제 출력 1
4
힌트
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 5585 거스름돈 풀이 (0) | 2018.05.03 |
---|---|
BOJ 백준온라인져지 13699 점화식 풀이 (0) | 2018.05.03 |
BOJ 백준온라인져지 1015 수열 정렬 풀이 (0) | 2018.05.01 |
BOJ 백준온라인져지 11945 뜨거운 붕어빵 풀이 (0) | 2018.04.30 |
BOJ 백준온라인져지 11943 파일 옮기기 풀이 (0) | 2018.04.30 |