Fence 문제 확인 부탁드립니다. 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일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
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(Temp_width > Best_width) Best_width = Temp_width;
}
System.out.println("Best_width : " + Best_width);
}
}
}
8년 전