코딩테스트/SWEA

[SWEA] 활주로 건설

하이하이루루 2023. 7. 11. 12:46

SWEA 활주로 건설 C++ 풀이

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

#include <iostream>

using namespace std;

int n, l, ret = 0;
int map[200][100];

int main() {

	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int t;
	cin >> t;

	for (int tc = 1; tc <= t; tc++) {
		cin >> n >> l;
		for (int y = 0; y < n; y++) {
			for (int x = 0; x < n; x++) {
				cin >> map[y][x];
			}
		}


		for (int y = 0; y < n; y++) {
			for (int x = 0; x < n; x++) {
				map[y + n][x] = map[x][y];
			}
		}

		int count = 0;
		int i, j;

		ret = 0;
		for (i = 0; i < 2 * n; i++) {
			count = 1;
			for (j = 0; j < n - 1; j++) {
				if (map[i][j] == map[i][j + 1]) {
					++count;
				}
				else if (map[i][j] + 1 == map[i][j + 1] && count >= l) {
					count = 1;
				}
				else if (map[i][j] - 1 == map[i][j + 1] && count >= 0) {
					count = (1 - l);
				}
				else {
					break;
				}
			}
			if (j == (n - 1) && count >= 0) {
				++ret;
			}
		}
		cout << "#" << tc << " " << ret << "\n";

	}

	return 0;
}