๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[๋ฐฑ์ค€/1009/๋ถ„์‚ฐ์ฒ˜๋ฆฌ]

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2024. 3. 19.

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

 

1009๋ฒˆ: ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ์ •์ˆ˜ a์™€ b๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

 

 

<<ํ’€์ด >>

 

๋‘๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ๋Š”๋ฐ ํ–ฅ์ƒ๋œ for๋ฌธ์„ ์“ฐ๋ƒ ์•ˆ ์“ฐ๋ƒ ์ฐจ์ด์ผ ๋ฟ์ด๋‹ค ใ…‹ใ…‹

 

์ด ๋ฌธ์ œ๋Š” Math.pow์˜ ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ณ  Math.pow๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ double ํƒ€์ž…์ด ๋˜๋ฏ€๋กœ int๋กœ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋ฉด ์บ์ŠคํŒ…์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•ด์•ผํ•œ๋‹ค.

 

๋˜ํ•œ, ๊ทœ์น™์œผ๋กœ ์ธํ•ด ํŠน์ • ๋ฒ”์œ„๊นŒ์ง€ ๊ฐ€๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ํ•˜๋Š” % ๋กœ ๋‚˜๋จธ์ง€ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์˜ํ•  ์ ์ด ์žˆ๋‹ค.

๋ฐ”๋กœ ๋‹ค์‹œ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ์ „!! ์ด๋•Œ 0์ด ๋˜๋Š”๋ฐ ์ด 0์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด๋‹ค.  ์ฆ‰ 0์ด ๋‚˜์˜ค๋ฉด ์•ˆ ๋˜๊ณ  0 + ์ฒ˜์Œ์œผ๋กœ ๊ฐ€๊ธฐ์ „์˜ ๊ฐ’ ์ด ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ถ€๋ถ„๋งŒ ์กฐ์‹ฌํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๋ฐ”๋กœ ํ’€ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

import java.util.Scanner;

class Data {
    int a;
    int b;
    public Data(int a, int b) {
        this.a = a;
        this.b = b;
    }
}

class Main {

    private int[] solution(Data[] data, int n) {
        int[] answer = new int[n];
        for (int i = 0; i < n; i++) {
            int exp = data[i].b % 4 == 0 ? 4 : data[i].b % 4; // b % 4๊ฐ€ 0์ผ ๊ฒฝ์šฐ 4๋ฅผ ์‚ฌ์šฉ
            int result = (int) (Math.pow(data[i].a, exp) % 10);
            answer[i] = result == 0 ? 10 : result;
        }
        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        Data[] data = new Data[n];
        for (int i = 0; i < n; i++) {
            data[i] = new Data(in.nextInt(), in.nextInt());
        }
        for (int x : T.solution(data, n)) System.out.println(x);
    }
}

 

import java.time.chrono.MinguoDate;
import java.util.Scanner;

class Data {
    int a;
    int b;
    public Data(int a, int b) {
        this.a = a;
        this.b = b;
    }
}

class Main {

   private int[] solution(Data[] data, int n) {
       int[] answer = new int[n];
       int index = 0;
        for (Data x : data) {
            int exp = x.b % 4 == 0 ? 4 : x.b % 4;
            answer[index++] = (int) (Math.pow(x.a, exp) % 10 == 0 ? 10 : Math.pow(x.a, exp) % 10);
        }
        return answer;
   }

    public static void main(String[] args){
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        Data[] data = new Data[n];
        for (int i = 0; i < n; i++) {
            data[i] = new Data(in.nextInt(), in.nextInt());
        }
        for (int x : T.solution(data, n)) System.out.println(x);


    }
}

๋Œ“๊ธ€