문제
해결 방안 고민
•
1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...
◦
이 내용만 잘 이해하면 풀 수 있다. 참고로 10번 데이터는 10번으로 분류할 수 있도록 해주는 조건이 필요하다.
•
일의 자리수만 알면 해결할 수 있는 문제이다.
해결 방법
•
a를 10으로 나눈 나머지에 a를 곱하고, 그 값을 10으로 나눈 나머지에 다시 a를 곱하는 일을 b번 반복한다.
•
곱해야 하므로 초기값을 1로 설정한다.
int data = 1;
for (int j = 0; j < b; j++) {
data *= a;
data %= 10;
}
Java
복사
코드
package algo250314;
import java.io.*;
import java.util.*;
// 분산처리 - 브론즈 2
public class Baek1009 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int data = 1;
// 일의 자리 숫자만 알면 되므로 (data %= 10)
for (int j = 0; j < b; j++) {
data *= a;
data %= 10;
}
if (data == 0) {
data = 10;
}
bw.write(String.valueOf(data));
bw.newLine();
}
bw.flush();
bw.close();
br.close();
}
}
Java
복사