Etc/알고리즘

[백준] 1009

jjuni_96 2024. 7. 4. 21:25
728x90

문제

 

입/출력

 

문제 분석

문제를 보는동안 두가지 방법이 떠올랐다.

첫번째는 연산을 하면서 10으로 나눠서 연산하는 방법

두번째는 모든 숫자들은 거듭제곱을 진행하면 반복되는 일의자리 숫자가 발생하게 된다.

ex) 3^1 = 3, 3^2 = 9, 3^3, 3^4 = 7, 3^5 = 1, 3^6 = 3

이 부분으로 특정 제곱의 순서로 판단할 수 있을것으로 예상

 

단순 구현문제로 생각해서 일단 첫번째로 진행하기로함

 

테스트코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
        // 10보다 크면 안되기 때문에 10으로 나눠서 작업 진행
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bf = new BufferedReader(inputStreamReader);

        int count = Integer.parseInt(bf.readLine());


        for (int i = 0; i < count; i++) {
            String[] nums = bf.readLine().split(" ");
            int a = Integer.parseInt(nums[0]);
            int b = Integer.parseInt(nums[1]);

            int answer = 1;
            for (int j = 0; j < b; j++) {
                answer = (answer * a)%10;
            }

            System.out.println(answer);
        }

    }
}

 

 

실패....

10으로 나누기를 했기때문에 10번째는 0으로 남게된다.

이 부분을 10으로 바꿔줘야했음을 간과...

 

 

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
        // 10보다 크면 안되기 때문에 10으로 나눠서 작업 진행
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bf = new BufferedReader(inputStreamReader);

        int count = Integer.parseInt(bf.readLine());


        for (int i = 0; i < count; i++) {
            String[] nums = bf.readLine().split(" ");
            int a = Integer.parseInt(nums[0]);
            int b = Integer.parseInt(nums[1]);

            int answer = 1;
            for (int j = 0; j < b; j++) {
                answer = (answer * a)%10;
            }

            answer = answer == 0 ? 10 : answer;
            System.out.println(answer);
        }
    }
}

 

통과!

 

알고리즘 분류

더보기

- 수학

- 분류

 

 

728x90
반응형
LIST