Google Kick Start 2021 Round H - B(Painter)

Dongjae Lee·2021년 11월 24일
#include <bits/stdc++.h>
using namespace std;

int main() {
	int T;
	scanf("%d", &T);
	
	for(int tc = 1; tc <= T; tc++) {
		int N;
		scanf("%d", &N);
		unsigned char P[200000];
		scanf("%s", P);
		vector<int> p;
		
		int temp = 0;
		while((int)(P[temp]) != 0) {
			if(P[temp] == 'U') p.push_back(0);
			if(P[temp] == 'R') p.push_back(1);
			if(P[temp] == 'Y') p.push_back(2);
			if(P[temp] == 'B') p.push_back(3);
			if(P[temp] == 'O') p.push_back(4);
			if(P[temp] == 'P') p.push_back(5);
			if(P[temp] == 'G') p.push_back(6);
			if(P[temp] == 'A') p.push_back(7);
			temp++;
		}		
		
		int r_count = 0;
		int y_count = 0;
		int b_count = 0;
		int state = 0;
		for(int i = 0; i < N; i++) {
			if(state == 0) {
				if(p[i] == 1 || p[i] == 4 || p[i] == 5 || p[i] == 7) {
					r_count++;
					state = 1;
				}
			}
			else {
				if(p[i] == 0 || p[i] == 2 || p[i] == 3 || p[i] == 6) {
					state = 0;
				}
			}
		}
		state = 0;
		for(int i = 0; i < N; i++) {
			if(state == 0) {
				if(p[i] == 2 || p[i] == 4 || p[i] == 6 || p[i] == 7) {
					y_count++;
					state = 1;
				}
			}
			else {
				if(p[i] == 0 || p[i] == 1 || p[i] == 3 || p[i] == 5) {
					state = 0;
				}
			}
		}
		state = 0;
		for(int i = 0; i < N; i++) {
			if(state == 0) {
				if(p[i] == 3 || p[i] == 5 || p[i] == 6 || p[i] == 7) {
					b_count++;
					state = 1;
				}
			}
			else {
				if(p[i] == 0 || p[i] == 1 || p[i] == 2 || p[i] == 4) {
					state = 0;
				}
			}
		}
		int result = r_count + y_count + b_count;
		printf("Case #%d: %d\n", tc, result);		
	}
}
profile
Hello Everything!

0개의 댓글