해커랭크 - Repeated String

phoenixKim·2021년 8월 29일
0

해커랭크

목록 보기
4/7

풀이 전략

  • 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;
}
profile
🔥🔥🔥

0개의 댓글

관련 채용 정보