string에서 a가 몇개 있는지를 카운팅한다.
2번째 줄은 현재 string을 반복시켜서 해당 숫자만큼
string을 늘리는 것인데
예) aba / 10
: a는 2개
1) 몫을 이용해 카운팅 된 수 * 몫 계산을 하고
: 몫 : 3
2) 나머지를 구해서 활용하자.
: 나머지 : 1이다
처음 생각은 나머지 인덱스가 'a'이면 카운팅을 하는 방법을 생각했지만,
몇개의 테스트 케이스 틀린다.
이렇게 역으로 생각하면
aab , 11
이면 몫은 3이고 나머지는 2이다.
-> 3 * 3 (a의 개수) + (나머지값) a 2개가 있음
이렇게 생각할 수 있꼬, 코드로 구현하면 된다.
long repeatedString(string s, long n) {
int cnt = 0;
for(int i = 0; i < s.length(); i++)
{
if(s[i] == 'a')
cnt++;
}
int len = s.length();
long sum = (n / len) * cnt;
int b = (n % len);
for(int i = 0; i < b; i++)
{
if(s[i] == 'a')
sum++;
}
return sum;
}