Fence 문제 확인 부탁드립니다.

  • minseobi83
    minseobi83

    아래 로직으로 예시는 정상적으로 출력이 되었지만 오답으로 판명이
    나버리네요. 어떤 로직에서 구멍이 나는지 확인부탁드립니다.ㅠㅠ

    로직을 요약하면 시작점과 종료점을 비교해서
    시작점 > 종료점 일경우 기존의 최대면적과 비교해서 크면 Swap하며,
    시작점 < 종료점 일 경우 시작점을 기준으로 계속 더해가는 형태입니다

    import java.util.Scanner;

    public class Main {

    static int C, N;
    static int Fence_count, Best_width, Temp_width;
    static int[] fence;
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {

    C = sc.nextInt();

    for(int cnt=0; cnt<C; cnt++){

    int max_fence = 0;
    N = sc.nextInt();
    fence = new int[N];

    for(int i=0; i<fence.length; i++){

    fence[i] = sc.nextInt();

    if(max_fence < fence[i]) max_fence = fence[i];
    }

    Best_width = 0;

    for(int i=0; i<fence.length-1; i++){

    Fence_count = 0;
    Temp_width = 0;

    for(int j=i; j<fence.length; j++){

    if(fence[i] > fence[j]) {
    
     if(Temp_width < fence[i]){
      Temp_width = fence[i];
      break;
     }
    
     else break;
    
    }
    
    else if (fence[i] <= fence[j]) Temp_width += fence[i];

    }

    if(Temp_width > Best_width) Best_width = Temp_width;

    }

    System.out.println("Best_width : " + Best_width);

    }
    }

    }


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