HackerRank

[HackerRank](c++) Repeated String

ShadowEye 2021. 6. 12. 13:01

문제 : 반복되는 스트링에서 문자 a의 총 개수 구하기

- 문자열에는 a가 1부터 100개 미만의 숫자 만큼 존재한다

- 반복되는 문자열일때 n번쨰까지 a의 총 개수를 구하라.

 

풀이법 1. 하드코딩 ㅠ.ㅠ

long repeatedString(string s, long n) {
    long temp = n / s.size();
    long reminder = n % s.size();
    long count = 0;
    long answer = 0;
    for (size_t i = 0; i < s.size(); i++)
    {
        if (reminder == i + 1)
        {
            answer += count;
        }
        if (s[i] == 'a')
        {
            count++;
        }
    }
    return answer + temp * count;
}

풀이법 2. std에 내장된 함수 사용

long repeatedString1(string s, long n) {
    long temp = n / s.size();
    long countStr = count(s.begin(), s.end(), 'a');
    s.resize(n % s.size());
    long reminder = count(s.begin(), s.end(), 'a'); ;
    return reminder + temp * countStr;
}