알고리즘 문제풀기/인프런 강의 정답

47. 봉우리 (2차원 배열 탐색) [정렬 & 이분탐색(결정알고리즘) & 투포인트 알고리즘 & 스택]

코다람쥐 2022. 4. 18. 13:03

나의정답.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);
	
	int n, i, j, cnt = 0;
	int row, col;
	scanf("%d", &n);

	row = n + 2;
	col = n + 2;
	
	int** arr = new int*[row]; 
	for (i = 0; i < row; i++)
		arr[i] = new int[col];


	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			arr[i][j] = 0;
		}
	}

	
	for (i = 1; i < row - 1; i++) {
		for (j = 1; j < col - 1; j++) {
			scanf("%d", &arr[i][j]);
		}
	}

	for (i = 1; i < row - 1; i++) {
		for (j = 1; j < col - 1; j++) {
			if (arr[i + 1][j] >= arr[i][j])
				continue;
			if (arr[i - 1][j] >= arr[i][j])
				continue;
			if (arr[i][j + 1] >= arr[i][j])
				continue;
			if (arr[i][j - 1] >= arr[i][j])
				continue;

			cnt++;
		}
	}
	
	printf("%d", cnt);
	for (i = 0; i < n + 2; i++)
		delete[] arr[i];
	delete[] arr;
	
}