
알고리즘 분류 : 그리디
난이도 : 실버1
출처 : 백준 - Re-verse


이중 for문을 이용해서 입력받은 문자열과 최대한 많이 곂게 했을 경우의 글자수를 계산한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String Alpha = br.readLine();
int routine = N;
for(int i=1;i<N;i++) {
boolean check = false;
for(int j=i;j<N;j++) {
if(Alpha.charAt(j-i)!=Alpha.charAt(j)) {
check = true;
break;
}
}
if(!check) {
routine = i;
break;
}
}
System.out.println((N-1)/routine+1);
}
}

ABABA같은 경우를 잘 고려하여 계산하면 어렵지 않게 풀 수 있다.