• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

강사님 혹시 어디 부분에서 왜 오류가 나는지 알 수 있을까요..

21.07.16 23:01 작성 조회수 111

0

아래 처럼 작성했는데 답은 나오는데 채점해보면 오답이라고 나와서요 어디부분이 왜 오류인지 알수있을까요?ㅠ.. 아무리 찾아도 뭔가 빼먹은것같은데 모르겠네요..

package sec01;

import java.util.Scanner;

class Main {
	public static int solution(int n , int[][] arr){
		int count = 0;
		
		
		for(int i=0;i<n;i++) {
			for(int j=0;j<n;j++) {
				boolean flag = true;
				
				
				if(i-1 >= 0 && arr[i][j] < arr[i-1][j]) { // 상
					flag = false;
				}
				if(i+1  <  n && arr[i][j] < arr[i+1][j]){ //하
					flag = false;
				}
				if( j-1 >= 0 && arr[i][j] < arr[i][j-1]){ // 좌
					flag = false;
				}
				if(j+1 < n && arr[i][j] < arr[i][j+1]){ // 우
					flag = false;
				}
				
				if(flag) {
					count++;
				}
			}
		}
		return count;
	}

	public static void main(String[] args){
		Scanner kb = new Scanner(System.in);
		
		int n = kb.nextInt();
		int[][] arr = new int[n][n];
		for(int i =0;i<n;i++) {
			for(int j=0;j<n;j++) {
				arr[i][j] = kb.nextInt();
			}
		}
		System.out.println(solution(n,arr));
	}
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

한 지점이 봉우리가 되려면 인접한 상하좌우 값보다 커야 봉우리가 되는 것입니다.