본문 바로가기
알고리즘 공부

백준 1009 분산처리

by kjwkjw 2020. 5. 16.

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

 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

#include <string>
#include <vector>
#include <stack>
#include <iostream>
#include <queue>

using namespace std;
vector<int> v;
int main(void)
{
	int t, a, b, answer;
	int sum = 1;
	int flag = 0;
	cin>>t;
	for (int i = 0; i < t; ++i)
	{
		cin>>a>>b;
		
		if(b==0)
		{
			if(i==t-1)cout<<1<<"";
			else cout<<1<<"\n";
			continue;
		}
		else if(a>=10) 
		{
			if(a%10==0)
			{
				if(i==t-1)cout<<10<<"";
				else cout<<10<<"\n";
				continue;
			}
			else
			{
				a = a%10;
			}
		}
		sum = sum * a;
		v.push_back(sum);
		while(flag==0)
		{
			sum = sum * a;
			if(sum==10 || sum%10==0) sum = 10;
			else if(sum>10) sum = sum%10;
			for (int k = 0; k < v.size(); ++k)
			{
				if(v[k]==sum)
				{
					flag = 1;
					break;
				} 
			}
			if(flag == 0) v.push_back(sum);
		}
		if(b<v.size()) answer = b - 1;
		else
		{
			answer = b%v.size();
			if(answer==0) answer = v.size()-1;
			else answer = answer + -1;
		}
		if(i<t-1)cout<<v[answer]<<"\n";
		else cout<<v[answer]<<"";
		sum = 1;
		answer = 0;
		flag=0;
		v.erase(v.begin(),v.begin()+v.size());
	}
}

'알고리즘 공부' 카테고리의 다른 글

백준 1012 유기농배추 [BFS]  (0) 2020.05.16
백준 1011 Fly me to the Alpha Centauri [Greedy]  (0) 2020.05.16
백준 1008 A/B  (0) 2020.05.16
백준 1003 피보나치 함수 [DP]  (0) 2020.05.16
백준 1001 A-B  (0) 2020.05.16

댓글