본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 핸드폰 번호 가리기(C#)

by jyppro 2023. 7. 30.

핸드폰 번호 가리기

오늘은 "핸드폰 번호 가리기" 문제를 풀어보도록 하겠습니다.

 

문제 설명

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

 

제한 조건

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

 

입출력 예

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

 

시작 코드

public class Solution {
    public string solution(string phone_number) {
        string answer = "";
        return answer;
    }
}

 

나의 풀이

public class Solution
    {
        public string solution(string phone_number)
        {
            string answer = "";
            for (int i = 0; i < phone_number.Length; i++)
            {
                if (i < phone_number.Length-4)
                { answer += "*"; }
                else
                { answer += phone_number[i]; }
            }
            return answer;
        }
    }

코드를 먼저 살펴보겠습니다. string타입의 phone_number를 받으며 시작합니다. for문을 phone_number의 길이만큼 돌리며 그 안에 if else문을 작성합니다. if else문을 살펴보면 i 가 phone_number의 길이에서 4를 뺀 것보다 작으면 answer에 *문자를 더하도록 합니다. else에서는 answer에 phone_number의 인덱스에 위치한 값을 더해줍니다. 모든 과정이 끝나면 answer를 리턴해줍니다.

 

풀이를 살펴봅시다. for문을 통해 phone_number의 인덱스에 순서대로 접근하여 뒷번호 4자리를 자른 곳까지 if else문을 통해  뒷 4자리가 아니라면 *로 만들고 뒷 4자리라면 숫자 그대로 answer에 추가하여 리턴하는 방식입니다.

 

<NEXT>

오늘은 "핸드폰 번호 가리기" 문제를 풀어보았습니다. 해당 문제는 간단하지만, 흔히 마스킹 처리라고 불리는 유용하게 사용될 수 있는 기술이므로 잘 알아두고 넘어가도록 하는게 좋습니다. 다음에는 "없는 숫자 더하기" 문제를 풀어보도록 하겠습니다. 감사합니다.