본문 바로가기

알고리즘

[코딩테스트] Level. 1 핸드폰 번호 가리기 Kotlin

728x90

 

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건
  • phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
"01033334444" "*******4444"
"027778888" "*****8888"

 

 

나의 풀이 .

private fun solution(phone_number: String): String {
    var c = ""
    phone_number.toList().mapIndexed { index, value ->
        if (index < phone_number.length - 4) c += "*" else c += value
    }
    return c
}

 

mapIndexed() 라는 함수를 사용하여 풀었다. 앞으로 활용도가 많을 것 이라고 생각이 된다. ㅎ 

 

다른 분의 풀이 .

class Solution {
    fun solution(phone_number: String): String {
        return "${"".padStart(phone_number.length - 4, '*')}${phone_number.takeLast(4)}"
    }
}

padStart() , takeLast() 함수들을 사용하여 풀었다. 굉장히 간단하고 좋은 것 같다. 

 

padStart() = 문자열을 replace 할 수 있는 함수. 

takeLast() 마지막 index 부터 지정한 숫자만큼 가져오는 함수.