• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

테스트 케이스가 실패합니다

23.02.09 19:21 작성 조회수 242

0

import java.util.Scanner;
  
public class Main {

    int[] dx = {-1, 0, 1, 0};
    int[] dy = {0, 1, 0, -1};

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int[][] arr = new int[num][num];

        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num; j++) {
                arr[i][j] = sc.nextInt();
            }
        }
        Main T = new Main();
        System.out.print(T.solution(num, arr));
    }

    public int solution(int num, int[][] arr) {
        int answer = 0;

        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num; j++) {
                boolean flag = true;
                for (int k = 0; k < 4; k++) { 
                    int nx = i + dx[k];
                    int ny = j + dy[k];
                    if (nx >= 0 && nx < num && ny >= 0 && ny < num
                        && arr[nx][ny] > arr[i][j]) {
                       
                        flag = false;
                        break;
                    }
                }
                if (flag) {
                    answer++;
                }
            }
        }

        return answer;
    }

}

정답을 요청한 코드입니다. 처음테스트와 두번째 테스트 케이스는 통과하나 그 이후 테스트 케이스는 실패한다고 나오네요.. 코드는 강사님이 작성해주신 코드와 동일하게 작성했는데.. 원인을 모르겠어서 질문 남깁니다

답변 1

답변을 작성해보세요.

0

안녕하세요^^

인접한 상하좌우 값이 크거나 같은 값이 있으면 봉우리가 될 수 없습니다.