문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.
public class Solution {
public string solution(string phone_number) {
string answer = "";
char[] num = phone_number.ToCharArray();
for (int i = 0; i < num.Length - 4; i++) {
num[i] = '*';
}
return answer = new string(num);
}
}
string을 ToCharArray로 char 배열로 변환하여 숫자를 * 로 가리는 작업을 했다.
풀고나서 다른사람들의 풀이를 보니 string 에 있는 Substring 메서드와 PadLeft 기능을 이용하면 더 간결하게 풀 수 있는것을 확인했다.
Substring은 특정 위치서 부터 문자열을 자르거나, 특정 위치까지 자를 수 있는 메서드다. 자세한건 아래 다른분이 정리해주신 블로그나 공식사이트의 설명을 보는게 빠를것 같다.
https://gent.tistory.com/502 >> 블로그
https://learn.microsoft.com/ko-kr/dotnet/api/system.string.substring?view=net-7.0 >> 공식사이트
PadLeft 기능은 string 문자열 왼쪽으로 특정문자를 입력하고싶을때 사용할 수 있는 메서드다. PadRight 메서드로 오른쪽으로 입력도 가능하다.
https://learn.microsoft.com/ko-kr/dotnet/api/system.string.padleft?view=net-7.0
위에서 배운걸 활용한다면 아주 간결하게 코드를 바꿀 수 있다.
public class Solution {
public string solution(string phone_number) {
answer = phone_number.Substring(phone_number.Length - 4).PadLeft(phone_number.Length, '*');
return answer;
}
}