문제 풀이/백준
[백준] 2331번. 반복수열 (JAVA)
27200
2024. 2. 11. 18:57
https://www.acmicpc.net/problem/2331
문제
풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
ArrayList<Integer> arr = new ArrayList<>();
arr.add(n);
while(true){
int number = 0;
int temp = arr.get(arr.size() - 1);
while(temp != 0){
number += (int)Math.pow(temp % 10,(double) m);
temp /= 10;
}
if(arr.contains(number)){
int cnt = arr.indexOf(number);
System.out.println(cnt);
break;
}
arr.add(number);
}
}
}
숫자를 받으면 이를 어레이리스트에 넣어두고 문제에서 제시된 조건만큼 각 자릿수 제곱을 하여 리스트에 넣는다. 이때 이미 리스트에 있다면 그 인덱스를 출력하면 되고 아니라면 리스트에 넣어주면 된다.