문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
-
s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
01033334444 | *******4444 |
027778888 | *****8888 |
소스코드 ( for 문을 사용하지 않고 )
class Solution {
public String solution(String phone_number) {
StringBuilder answer = new StringBuilder(phone_number);
int len = answer.length()-4;
if(len == 0) return answer.toString();
answer.delete(0,len);
String strFomat = String.format("%"+len+"s"," ").replace(" ","*");
return answer.insert(0,strFomat).toString();
}
}
소스코드 ( for 문을 사용하고 )
class Solution {
public String solution(String phone_number) {
char[] arrCh = phone_number.toCharArray();
for(int i =0; i< arrCh.length-4; i++){
arrCh[i] = '*';
}
return String.valueOf(arrCh);
}
}
최대한 직접적으로 반복문을 사용하지 않고, 작성하려다 보니 위와같이 작성 했을때
시간적인 부분이 좀 늦어 혹시나 해봤는데.. 이런 문제는 for 가 더 괜찮은 결과를 주고 있다.
'Algorithm > Programmers' 카테고리의 다른 글
행렬의 덧셈 (0) | 2020.01.24 |
---|---|
x만큼 간격이 있는 n개의 숫자 (0) | 2020.01.21 |
하샤드 수 (0) | 2020.01.21 |
평균 구하기 (0) | 2020.01.21 |
콜라츠 추측 (0) | 2020.01.21 |