TIL/kotlin 알고리즘

kotlin 프로그래머스 lv2 k진수에서 소수 개수 구하기

crablo 2024. 3. 15. 18:38
728x90

해당 문제를 보고 저번에 풀었던 프로그래머스 lv1 3진법 뒤집기 문제와 많이 유사하다고 생각했다.

먼저 n이라는 정수를 k진수로 변환하는 과정이 필요했다.

그래서 

var mok = n

var kjinbubList = mutableListOf<Int>()

while(mok != 0){

      kjinbubList.add(mok % k)

      mok /= k 

}

 

val resultList = kjinbubList.reversed().joinToString("") //211020101011

==>이런 방식으로 변환을 시켰다.

이제 변환된 숫자를 순회하며 연속된 소수를 찾는 과정이 필요했다.

var startIndex = 0

var endIndex = 0 

while(endIndex < resultList.length){

  //연속된 0의 갯수를 센다  갯수를세다가 0이 아닌 숫자를 만나면 빠져나가서 startIndex 설정

           while(endIndex < resultList.length && resultList[endIndex] == '0'){

                    endIndex++

            }

        //0의 갯수를 세다가 0이 아닌 숫자를 만난경우

       startIndex = endIndex

}

결과적으로 답은 

코드를 실행했을때는 잘 돌아가는데 제출 후 채점만 안된다 ㅎㄷㄷ

그래서 다시 풀어봐야겠다.

728x90