문제 출처
https://www.acmicpc.net/problem/2331
접근 방식 및 풀이
- 규칙대로 숫자를 구하다가 중복되는 숫자가 나오면 map에 넣어둔 data값 출력
참고 : https://haloworld.tistory.com/122
소스 코드
import java.io.IOException;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int p = sc.nextInt();
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(a,0);
int cnt=1;
int tmp =a;
while(true){
int D=0;
while(tmp!=0){
D += Math.pow(tmp%10, p);
tmp /=10;
}
System.out.println("확인하세요 : "+D);
if(map.containsKey(D)){
System.out.println(map.get(D));
return;
}
System.out.println("확인하세요 : "+map.toString());
map.put(D,cnt++);
tmp=D;
}
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 11725번 트리의 부모노드 찾기 (4) | 2020.03.27 |
---|---|
[백준] 2146번 다리만들기 (0) | 2020.03.25 |
[백준] 1654번 랜선 자르기 (0) | 2020.03.24 |