C#으로 풀기 - 핸드폰 번호 가리기

Amberjack·2024년 2월 20일
0

Codekata

목록 보기
9/16

핸드폰 번호 가리기

문제풀이...

오늘 문제는 for문을 사용하지 않고 짧게 해결할 방법을 생각해보려 했으나 도저히 생각나지 않았 다... 따라서 phone_number를 SubString을 통해 뒤에 4자리만 남겨놓고 나머지는 *를 Insert 하여 문제를 해결했다.

public string solution(string phone_number)
{
    string answer = "";
    int maskingSize = phone_number.Length - 4;

    if (maskingSize > 0)
    {
        answer = phone_number.Substring(maskingSize);

        for (int i = 0; i < maskingSize; i++) answer = answer.Insert(i, "*");
        return answer;
    }
    else return phone_number;
}

하지만 문제를 해결하고 다른 사람의 코드를 확인해보니 더 좋은 방법이 있어서 가져왔다!

다른 사람의 코드

PadLeft()라는 함수는 알고는 있었지만 이런 식으로 사용 가능한 줄 몰랐다. 나중에 특정 길이만큼 마스킹을 해야하는 경우가 또 생긴다면 이것을 잊지 않고 사용했으면 좋겠어서 기록을 남긴다.

public class Solution {
    public string solution(string phone_number) {
        string answer = phone_number.Substring(phone_number.Length - 4);
        answer = answer.PadLeft(phone_number.Length, '*');
        return answer;
    }
}

나와 마찬가지로 SubString을 통해 뒤에 4자리만 남기고 문자열을 자른 것은 동일하나, PadLeft를 통해 answer가 phone_number의 Length가 되도록 *를 채워준 것이다.

0개의 댓글