FENCE에 대한 질문입니다.

  • sunghoYu
    sunghoYu

    아래와 같이 문제를 풀었는데요.
    제가 생각하는 테스트케이스는 다 맞는거 같은데..
    계속 오답이라고 나오네요..
    어떤 부분이 틀렸는지 궁금해서요..

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.util.Scanner;

    public class Main {
    static int N;

    public static void main(String args[]) throws FileNotFoundException {
    
        Scanner sc = new Scanner(System.in);
    
        int T = sc.nextInt();
    
    
        for(int test_case = 1; test_case<=T; ++test_case){
            N = sc.nextInt();
    
            int arr[] = new int[N];
            int count = 0;
            long maxNumber = 0;
            for(int i=0; i<N; i++) {
                arr[i] = sc.nextInt();
            }
    
    
            for(int i=0; i<N; i++) {
                count = 0;
                if (i == 0) {
                    int result = arr[i];
                    for(int j=i+1; j<N; j++) {
                        if (arr[i] > arr[j]) {
                            maxNumber = result;
                        } else if (arr[i] <= arr[j]) {
                            ++count;
                        }
                    }
                    if (maxNumber < (result * count)) {
                        maxNumber = (result * count);
                    }
                } else if (i > 0 && i<arr.length-1) {
    
                    int result  = arr[i];
                    for(int j=i; j>=0; j--) {
                        if (arr[i] > arr[j]) {
                            break;
                        } else if (arr[i] <= arr[j]) {
                            count++;
                        }
                    }
    
                    for(int j=i; j<N-1; j++) {
                        if (arr[i] <= arr[j+1]) {
                            count++;
                        } else if (arr[i] > arr[j+1]) {
                            break;
                        }
                    }
                    if (maxNumber < (result * count)) {
                        maxNumber = (result * count);
                    }
                } else if (i == N-1) {
    
                    int result = arr[i];
                    for(int j=i-1; j>=0; --j) {
                        if (arr[i] > arr[j]) {
                            break;
                        } else if (arr[i] <= arr[j]) {
                            ++count;
                        }
                    }
                    if (maxNumber < (result * count)) {
                        maxNumber = (result * count);
                    }
                }
    
            }
            System.out.println(maxNumber);
        }
    }

    }


    8년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.