누적합 난이도 실버 5이길래 쉽겠거니~하고 들어갔다고 엄청 고생했다.문자열 반 나누고 양쪽합 구하는 코드가 생각이 안 나더라.난 알고리즘이 문제가 아니고 구현 능력이 너무 부족한거 같다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int sz = str.length();
int[] arr = new int[sz+1];
//누적합 배열을 저장
for(int i=1;i<arr.length;i++) arr[i]=arr[i-1]+str.charAt(i-1)-'0';
//i는 내가 검사할 문자열의 길이를 의미한다.전체 길이가 홀수일 경우 -1된 길이가 나온다.짝수만 검하해야 하기에 -2
for(int i=(sz/2)*2;i>=2;i-=2){
// 절반씩 잘라서 비교해야 하기에
int n = i/2;
// j는 검사할 문자열의 끝 인덱스를 의미한다.
for(int j=i;j<=sz;j++){
//반반 더해서 똑같은지 비교하는 코드
if(arr[j]-arr[j-n]==arr[j-n]-arr[j-i]){
System.out.println(i);
return;
}
}
}
}
}