
index가 0 12 / 34 라면 4칸, 2는 0,1,2의 합 - 0을 하면 1,2의 합 구할 수 있고
4는 0,1,2,3,4의 합 4 - 2는 3,4의 합, 절반인 2의 앞의 합과 뒤의 합을 비교할 수 있다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
String str = br.readLine();
int ps[] = new int[str.length()+1]; // 누적 합 배열 생성 0의 값은 항상 0
int result=0;
for(int i=0;i<str.length();i++){
ps[i+1] = ps[i] + (str.charAt(i)-'0'); // 누적 합 배열 초기화
}
for(int i=2;i<=str.length();i+=2){ // 짝수 칸 만큼 잡음
for(int j=0;j+i<=str.length();j++){ //잡은 칸에서 index를 1씩 높여가며 탐색
int mid = j+i/2;
int end = j+i;
int sum1 = ps[mid] - ps[j]; //절반앞의 합 - 시작점
int sum2 = ps[end] - ps[mid]; //뒤의 합 - 절반 앞의 합
if(sum1 == sum2)
result = i;
}
}
sb.append(result);
System.out.println(sb);
br.close();
}
}