Coding Test/Programmers

[Lv.1] 핸드폰 번호 가리기 [프로그래머스_코딩테스트] [문자열] [10분]

whawoo 2025. 6. 30. 00:56
반응형

🔍 문제 요약

https://school.programmers.co.kr/learn/courses/30/lessons/12948

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

전화번호 phone_number가 주어질 때 뒤어 4자리를 제외하고 모두 *로 바꾸어서 반환하는 문제

🧠 나의 접근 방식과 시행착오

약 3분 정도 걸린 문제. 그냥 길이 계산하고 뒤에 4자리 빼곤 *로 저장 후 string 다시 생성함.

/// <summary>
/// 핸드폰 번호 가리기
/// https://school.programmers.co.kr/learn/courses/30/lessons/12948
/// </summary>
public string solution(string phone_number)
{
    var charArr = new char[phone_number.Length];
    int phoneNumLen = phone_number.Length;

    for (int i = 0; i < phoneNumLen; i++)
    {
        if (i < phone_number.Length - 4)
        {
            charArr[i] = '*';
        }
        else
        {
            charArr[i] = phone_number[i];
        }
    }
    return new string(charArr);
}

✅ 풀이 코드

더 간결하게 해결한 버젼이라고 한다. (큰 차이는 나지 않는 듯 함) 

public string solution(string phone_number)
{
    return new string('*', phone_number.Length - 4) + phone_number.Substring(phone_number.Length - 4);
}

 

굳이 Linq를 사용한다면 아래처럼 풀 수 있다.

public string solution(string phone_number)
{
    return string.Concat(phone_number
        .Select((c, i) => i < phone_number.Length - 4 ? '*' : c));
}

🔄 정리

크게 어렵거나 고민할 문제가 아니라 정리할 부분은 따로 없다.

반응형