Programming/Algorithm
[Algorithm] C++ 봉우리(2차원 배열)
100winone
2019. 12. 26. 16:51
입력설명
첫 줄에 자연수 N이 주어진다.(1<=N<=50) 두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는 다.
출력설명
봉우리의 개수를 출력하세요
입력예제
5
5 3 7 2 3
3 7 1 6 1
7 2 5 3 4
4 3 6 4 1
8 7 3 5 2
출력예제
10
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int a[51][51];
int dx[4] = { -1, 0, 1, 0 };
int dy[4] = { 0, 1, 0, -1 };
int main() {
int n, i, j, k, cnt = 0, flag;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
scanf("%d", &a[i][j]);
}
}
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
flag = 0;
for (k = 0; k < 4; k++) {
if (a[i][j] <= a[i + dx[k]][j + dy[k]]) {
flag = 1;
break;
}
}
if (flag == 0) cnt++;
}
}
printf("%d\n", cnt);
return 0;
}