문자열과 숫자를 순서대로 입력받아,

문자열의 길이가 두번째 인자로 받은 숫자만큼 길이가 될때 까지 문자열을 붙인후, 

'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;
}

 

+ Recent posts