Algorithm

[백준] 알고리즘 14654번 - 스테판 쿼리문제

낭강 2020. 11. 19. 02:26

#include<bits/stdc++.h>
using namespace std; 
int a[301];
int b[301];
int galba(int t, int t1) {
	if (t == t1) return 0; //비길때
	else if (t == 2 && t1 == 1)  return 1; //t o t1 x
	else if (t == 3 && t1 == 2)  return 1; //t o t1 x
	else if (t == 1 && t1 == 3)  return 1; //t o t1 x
	return 2;
}
int main()
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n, cnt = 0,cnt1=0,ans=0;
	cin >> n;
	for (int i = 0; i < n; i++) 
		cin >> a[i];
	for (int i = 0; i < n; i++)
		cin >> b[i];
	for (int i = 0; i < n; i++) {
		if (galba(a[i], b[i]) == 2) {
			cnt = 0;
			cnt1++;
			ans = ans > cnt1 ? ans : cnt1;
		}
		else if (galba(a[i], b[i]) == 1) {
			cnt++;
			cnt1=0;
			ans = ans > cnt ? ans : cnt;
		}
		else if (galba(a[i], b[i]) == 0) {
			if (cnt > 0) {
				cnt = 0;
				cnt1 = 1;
			}
			else {
				cnt = 1;
				cnt1=0;
			}
		}
	}
	cout << ans;
}