문자열과 숫자를 순서대로 입력받아,
문자열의 길이가 두번째 인자로 받은 숫자만큼 길이가 될때 까지 문자열을 붙인후,
'a'문자의 갯수를 파악하는 문제이다.
단순히 생각하고 접근하면 테스트케이스에서 두번째 숫자가 커질경우, OutOfMemory 에러가 발생한다..
static long repeatedString(String s, long n) {
long multipleNum =0;
int aCnt = 0;
long result = 0 ;
//먼저 문자열에서 a개수를 세고,
//문자열을 붙인 수 만큼 곱해서 몫을 구한다.
for(int i=0; i<s.length(); i++){
if('a' == s.charAt(i))
aCnt++;
}
multipleNum = n/s.length();
result = aCnt*multipleNum;
//나머지 문자열에서 a의 개수를 구해서 더한다.
long remainder = n%s.length();
for(int i=0; i<remainder; i++){
if('a' ==s.charAt(i))
result++;
}
return result;
}
'코딩테스트' 카테고리의 다른 글
[Java]해커랭크 - Two Strings (0) | 2020.02.26 |
---|---|
[Java]해커랭크 - Hash Tables: Ransom Note (0) | 2020.02.26 |
[Java]해커랭크 - Minimum Absolute Difference in an Array (0) | 2020.02.26 |
[Java]해커랭크 - Jumping on the Clouds (0) | 2020.02.25 |
[Java]해커랭크 - Sock Merchant (0) | 2020.02.24 |