문제
- 2차원 배열에서 자기 자신보다 상하좌우에서 높은 크기를 가지고 있는 값들이 있는 경우의 개수를 구하기
public class Main{
static int[] dx = {-1,0,1,0};
static int[] dy = {0,1,0,-1};
public static int solution(int[][] arr){
int answer = 0;
int n = arr.length;
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr.length; j++){
boolean flag = true;
//int current = arr[i][j];
for(int d=0; d<4; d++){
//int nx = arr[i][j]+dx[d];
//int ny = arr[i][j]+dy[d];
int nx = i+dx[d];
int ny = j+dy[d];
// 경계선 넘지 않게 체크 0~n-1
if(nx>=0 && nx<n && ny>=0 &&ny<n && arr[nx][ny]>=arr[i][j]) { // 현재위치보다 상하좌우가 큼
flag = false;
break;
}
}
if(flag){
answer++;
}
}
}
return answer;
}
'코딩테스트 > Java' 카테고리의 다른 글
[JAVA] 정렬 - binary sort 이진 정렬 (0) | 2022.06.30 |
---|---|
[JAVA] 투포인터, 슬라이딩 윈도우 (0) | 2022.06.30 |
[JAVA] DFS - 인접 행렬을 사용한 경로 탐색 (0) | 2022.06.29 |
[JAVA] DFS, BFS - 루트 노드에서 말단 노드까지 가장 최단 경로 (0) | 2022.06.29 |
[JAVA] BFS - 송아지 찾기 (0) | 2022.06.29 |