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);
}
}
}
숫자를 받으면 이를 어레이리스트에 넣어두고 문제에서 제시된 조건만큼 각 자릿수 제곱을 하여 리스트에 넣는다. 이때 이미 리스트에 있다면 그 인덱스를 출력하면 되고 아니라면 리스트에 넣어주면 된다.
'문제 풀이 > 백준' 카테고리의 다른 글
| [백준] 2178번. 미로 탐색(JAVA) (0) | 2024.02.12 |
|---|---|
| [백준] 11724번. 연결 요소의 개수(JAVA) (0) | 2024.02.12 |
| [백준] 13560번. 축구 게임(JAVA) (1) | 2024.02.09 |
| [백준] 2075번. N번째 큰 수 (JAVA) (0) | 2024.02.08 |
| [백준] 1715번. 카드 정렬하기 (JAVA) (0) | 2024.02.08 |