Muscardinus

경사로 본문

알고리즘 문제/[삼성 SW 역량 테스트 기출 문제]

경사로

Muscardinus 2020. 8. 26. 17:32
728x90

https://www.acmicpc.net/problem/14890

 

14890번: 경사로

첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다.

www.acmicpc.net

#include <iostream>

using namespace std;

int n, l;
int map[200][200];
int answer = 0;
int main() {
	ios_base::sync_with_stdio(false);
	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 i, j;
	int cnt;
	for (i = 0; i < 2 * n; i++) {
		cnt = 1;
		for (j = 0; j < n - 1; j++) {
			if (map[i][j] == map[i][j + 1]) cnt++;
			else if (map[i][j] + 1 == map[i][j + 1] && cnt >= l) {
				cnt = 1;
			}
			else if (map[i][j] - 1 == map[i][j + 1] && cnt >= 0) {
				cnt = 1 - l;
			}
			else break;
		}
		if (j == n - 1 && cnt >= 0) answer++;
	}
	cout << answer << "\n";
	return 0;
}
728x90

'알고리즘 문제 > [삼성 SW 역량 테스트 기출 문제]' 카테고리의 다른 글

감시  (0) 2020.08.28
톱니바퀴  (0) 2020.08.27
스타트와 링크  (0) 2020.08.25
로봇청소기  (0) 2020.08.24
연구소  (0) 2020.08.23
Comments