Competition/Baekjoon

[백준] 2331번 반복수열

bisi 2020. 3. 25. 17:08
문제 출처 

https://www.acmicpc.net/problem/2331

 

2331번: 반복수열

첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.

www.acmicpc.net

 

 

 

접근 방식 및 풀이

- 규칙대로 숫자를 구하다가 중복되는 숫자가 나오면 map에 넣어둔 data값 출력

 

참고 : https://haloworld.tistory.com/122

 

[문제풀이] 백준 2331 반복수열

import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 반복수열_2331 { public static void main(String args[]){ Scanner sc = new Scanner(System.in); Map map = new Hash..

haloworld.tistory.com

 

 

 

 

소스 코드 

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