본문 바로가기
알고리즘/백준 & swacademy

SW 8568 - 3으로 나눈 순열 (발상)

by sun__ 2019. 11. 3.

https://suuntree.tistory.com/75?category=797985

koi 모양정돈에서 썻던 논리와 같은 논리로 풀 수 있다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW1B8rJq3NUDFARC&categoryId=AW1B8rJq3NUDFARC&categoryType=CODE

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int testcase; cin >> testcase;
	for (int tc = 1; tc <= testcase; tc++) {
		int n, arr[3][3] = { 0 }; //그룹 i에 속한 그룹j요소 수
		cin >> n;
		for (int i = 1, input; i <= n; i++) {
			cin >> input;
			if (input % 3 != i % 3) arr[i % 3][input % 3]++;
		}
		cout << "#" << tc << " " << arr[0][1]+arr[0][2] + max(arr[1][2], arr[2][1]) << '\n';
	}
}

그룹 0에 있는 그룹1,2요소의 수 + max(그룹 1에 있는 그룹2요소 수, 그룹 2에 있는 그룹1요소 수)

-> arr[0][1]+arr[0][2] + max(arr[1][2], arr[2][1])