알고리즘문제

[백준]boj 1009 분산처리 (distributed processing)

Beginner:) 2018. 8. 7.
320x100
#include<stdio.h>
int arr[4][5]={{2,4,8,6},{3,9,7,1},{7,9,3,1},{8,4,2,6}};
int main()
{
	int T;
	scanf("%d",&T);

	while(T--)
	{
		int a,b;
		scanf("%d %d",&a,&b);
		a=a%10;
		if (b==0) printf("1\n");
		else if(a==0) printf("10\n");
		else if(a==1 || a==5 || a== 6) printf("%d\n",a);
		else if(a==4 || a==9)
		{
			if(b&1) printf("%d\n",a);
			else
			{
				if(a==4) printf("6\n");
				else printf("1\n");
			}
		}
		else
		{
			b=(b-1)%4;
			if(a==2) printf("%d\n",arr[0][b]);
			if(a==3) printf("%d\n",arr[1][b]);
			if(a==7) printf("%d\n",arr[2][b]);
			if(a==8) printf("%d\n",arr[3][b]);
		}
	}
	return 0;
}




힌트

1. 최대값인 99^999999 값을 계산하기에는 무리가 있습니다.

2. 위 코드를 보며 각 숫자의 규칙성을 찾아보세요.

3. 위 코드는 각 숫자의 규칙을 알아보기 쉽게 나타낸 것입니다. 자신만의 방법으로 코드를 줄여보세요 ! (*가독성 중요!)


문제링크 : https://www.acmicpc.net/problem/1009 

반응형

댓글