
어느 분야에서든 분산(Dispersion)은 중요합니다.
통신분야에서도 데이터를 여러 경로로 나누어 보내기도 하고, 버스나 지하철 등 대중교통의 배차량 조절도 일종의 분산으로 볼 수 있을 것입니다.
또한, 주식이나 코인 투자도 분산이 중요한데,
어,,
그런 의미에서 오늘은 분산처리를 풀어보겠습니다.

#include <stdio.h>
int main() {
int getnum, a, b;
scanf("%d", &getnum);
for (int i = 0; i < getnum; i++) {
int upnum = 1;
scanf("%d %d", &a, &b);
for(int j = 0; j < b; j++) {
upnum = (upnum * a)%10;
}
if(upnum == 0) {
printf("10\n");
} else {
printf("%d\n", upnum);
}
}
}
요즘 배열문제를 따로 풀고있어서 문제를 보면 배열부터 생각이 납니다.
이것이 이번 문제의 Pain패인이었습니다.

직전의 코드는 다음과 같습니다.
int main() {
int getnum, a, b, realnum;
int arr[1001] = {0,};
scanf("%d", &getnum);
for (int i = 0; i < getnum; i++) {
scanf("%d %d", &a, &b);
int realnum = 0;
int count = 1;
int result = a;
for (int k = 0; k < count; k++) {
result*=a;
arr[k] = result%10;
if(arr[k] == a) {
arr[k] = (result/a)%10;
break;
}
arr[k] = (result/a)%10;
count++;
}
realnum = b%count;
if (realnum-1 < 0) {
printf("%d\n", arr[count-1]);
} else {
printf("%d\n", arr[realnum-1]);
}
}
}
repl.it에서 실행시켰을 때, 결과는 동일하지만, 훨씬 코드가 난잡하고 알아보기 힘든것을 볼 수 있습니다.
배열을 먼저 떠올렸던 이유는 첫번째 자리 수를 계산 한 뒤, 이를 저장해놓고 비교 한 뒤 불러와야 한다는 강박에 시달려 배열만을 고집했지만, 생각해보니 계속 마지막 자리수만 수백번 계산해도 한자리 계산이니 그렇게 시스템적인 부하도 크지 않았습니다.
도움을 주신 @ryan_yonghyun.log 에게 감사하고, 분산 투자 하신 모든분들을 응원하며 오늘 글을 마치겠습니다.
감사합니다ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ