Android/Algorithm

[프로그래머스 / Kotlin] 핸드폰 번호 가리기

정생강 2024. 3. 6. 19:47

[프로그래머스 / Kotlin] 핸드폰 번호 가리기

문제 설명

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

- 제한조건

phone_number는 길이 4 이상, 20이하인 문자열입니다.

 

풀이 과정

문제를 해결하긴 해결했는데 너무 비효율적으로 문제를 푼 느낌이다. 찾아보면 더 간단하게 풀 수 있는 함수가 있을 것 같은데 눈에 보이는 대로 푼 느낌. 문제는 보자마자 해결했지만 코드가 마음에 들지 않는다. 

--

for을 두개 사용하지 않고 for문 안에 if 문을 넣어서 사용할 수 있을 것 같다. for문을 i in 0 .. number.size로 돌린 후 if문의 조건식을 i < number.size - 4 이면 *을 박고 아니면 number[i]을 가져오는 식으로도 풀 수 있을 것 같다.

 

내가 푼 코드

class Solution {
    fun solution(phone_number: String): String {
        var answer = ""
        var number = phone_number.toCharArray()
        for(i in 0 until number.size - 4){
            answer += "*"
        }
        for(i in number.size - 4 until number.size){
            answer += number[i]
        }
        return answer
    }
}

 

후기

처음에 알고리즘 문제를 보면 어떤 방향으로 접근해야하는지 막막했는데 풀어 볼 수록 문제를 해결할 방법을 떠올리는 속도가 빨라진 것 같다.