너무 복잡하게 생각했다.

간과한 사실이, 최대 반복되는 횟수는 4이다.

예를 들어 2로 끝나는 수는 2,4,8,6 이다. 그러면 1같은건 항상 1인데 어떻게 하느냐?

1,1,1,1 이렇게 생각했으면, 아래에 selectArray 같은 함수 만드는일은 없었을 텐데 좀 아쉽다.

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
    public static Main Main(){
        return new Main();
    }

    public static int selectArray(int a, int b){
        int result = 0;

        if(a % 10 == 0){
            int[] values = {10};
            return findNumber(b, values);
        }
        if (a % 10 == 1){
            int[] values = {1};
            return findNumber(b, values);
        }
        if (a % 10 == 2){
            int[] values = {2,4,8,6};
            return findNumber(b, values);
        }
        if (a % 10 == 3){
            int[] values = {3,9,7,1};
            return findNumber(b, values);
        }
        if (a % 10 == 4){
            int[] values = {4, 6};
            return findNumber(b, values);
        }
        if (a % 10 == 5){
            int[] values = {5};
            return findNumber(b, values);
        }
        if (a % 10 == 6){
            int[] values = {6};
            return findNumber(b, values);
        }
        if (a % 10 == 7){
            int[] values = {7,9,3,1};
            return findNumber(b, values);
        }
        if (a % 10 == 8){
            int[] values = {8,4,2,6};
            return findNumber(b, values);
        }
        if (a % 10 == 9){
            int[] values = {9, 1};
            return findNumber(b, values);
        }
        return result;
    }

    public static int findNumber(int b, int[] values){
        int result = 0;
        for (int i = 1; i < values.length + 1; i++)
        {
            if(b % values.length == 0) {result = values[values.length-1];}
            else {result = values[b % values.length - 1];}
        }

        return result;
    }

    public static int lastData(int a, int b){
        return selectArray(a, b);
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        ArrayList<Integer> array =  new ArrayList<>();

        StringTokenizer st = null;

        while(0 < count){
            int a, b = 0;

            st = new StringTokenizer(br.readLine());
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            array.add(lastData(a, b));
            count --;
        }
        array.forEach(list -> System.out.println(list));
    }
}

 

 

'AREA(지속적인 일상) > 02_백준' 카테고리의 다른 글

[백준] - 2753 - 윤년  (0) 2021.08.24
[백준] - 1330 대소 비교  (0) 2021.08.24
[백준] 2588 곱셈  (0) 2021.08.23
[백준 1002] 터렛  (0) 2020.02.24
[백준 15552] 빠른 A+B (Java)  (0) 2020.02.24