[삼성 SW 역량 테스트] 경사로





#include <stdio.h>

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

int main()
{
	scanf("%d %d", &n, &l);
	for (int y = 0; y < n; ++y) {
		for (int x = 0; x < n; ++x) {
			scanf("%d", &map[y][x]);
		}
	}

	for (int y = 0; y < n; ++y) {
		for (int x = 0; x < n; ++x) {
			map[n + y][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;
		}
	}
	printf("%d\n", ret);

	return 0;
}


설정

트랙백

댓글