import java.util.Scanner;
public class Main {
public int maxi(int a, int b) {
int o = a > b ? a : b;
return o;
}
static int arr[];
static int temp[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main m = new Main();
int maximum = 0;
int k = 2; int z = 1;
int n = sc.nextInt();
int arr[] = new int[n + 1];
int temp[] = new int[n];
for (int i = 1; i < n + 1; i++) {
arr[i] = sc.nextInt();
maximum = arr[1];
for (int i = 1; i < n; i++) { // arr에 기본 합 저장
arr[i + 1] = arr[i] + arr[i + 1];
maximum = m.maxi(maximum, arr[i + 1]);
while (true) { if (n >= 3) {
for (int q = k; q < n; q++) { // temp에 기본합을 이용함
temp[q - 2] = arr[q + 1] - arr[z];
maximum = m.maxi(maximum, temp[q - 2]);
z = z + 1;
k = k + 1;
if (k == n) break;
if (n == 1) break;
else if (n==2) {
maximum = m.maxi(arr[1], arr[2]);
break; }
} System.out.println(maximum);
어느부분이 잘못된 것일까요??
3
1 -2 3
그리고 질문에 문제 번호를 넣는 칸이 있고, 소스코드를 넣는 칸도 있습니다.
넵 옮겼습니다
댓글을 작성하려면 로그인해야 합니다.
tjdwlsdlaek 6년 전
import java.util.Scanner;
public class Main {
public int maxi(int a, int b) {
int o = a > b ? a : b;
return o;
}
static int arr[];
static int temp[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main m = new Main();
int maximum = 0;
int k = 2; int z = 1;
int n = sc.nextInt();
int arr[] = new int[n + 1];
int temp[] = new int[n];
for (int i = 1; i < n + 1; i++) {
arr[i] = sc.nextInt();
}
maximum = arr[1];
for (int i = 1; i < n; i++) { // arr에 기본 합 저장
arr[i + 1] = arr[i] + arr[i + 1];
maximum = m.maxi(maximum, arr[i + 1]);
}
while (true) { if (n >= 3) {
for (int q = k; q < n; q++) { // temp에 기본합을 이용함
temp[q - 2] = arr[q + 1] - arr[z];
maximum = m.maxi(maximum, temp[q - 2]);
}
z = z + 1;
k = k + 1;
if (k == n) break;
}
if (n == 1) break;
else if (n==2) {
maximum = m.maxi(arr[1], arr[2]);
break; }
} System.out.println(maximum);
}
}
어느부분이 잘못된 것일까요??