Algorithm
[ 백준 / 1009 ] 분산처리 ( 자바 )
코동이
2021. 1. 14. 23:40
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
a^b에 속아서 제곱의 수에만 신경을 써서는 안된다.
이 문제는 결국 최종 값의 일의 자리가 무엇인지가 궁금한 문제이다.
이런식으로 문제에서 요구사항을 감추는 일이 종종 있다.
문제를 읽고 어떤 방식으로 풀어야 하는지 조금 더 생각해보고 여러가지 방안을 마련해두자!
//1009 분산처리
import java.util.*;
public class Main {
static List<Long> list = new ArrayList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for(int i=0;i<N;i++) {
list.clear();
int a = sc.nextInt();
int b = sc.nextInt();
if(a%10==0) {
System.out.println(10);
continue;
}
cal(a,b);
}
}
public static void cal(int a, int b) {
long nowVal = a;
while(!list.contains(nowVal%10)) {
list.add(nowVal%10);
nowVal = nowVal*a;
}
System.out.println(list.get((b%(list.size())+list.size()-1)%list.size()));
}
}
반응형