1. 문제
String phone_number을 매개변수로 받아 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수를 만드시오.
2. 제한
phone_number는 길이가 4이상, 20이하이다.
3. 정답
class Solution {
public String solution(String phone_number) {
char [] answer = phone_number.toCharArray();
int length = answer.length;
for (int i = length - 5; i >= 0; i--) {
if ('0' <= answer[i] && answer[i] <= '9') {
answer[i] = '*';
}
}
String result = String.valueOf(answer);
return result;
}
}
4. 설명
4-1. String으로 들어온 phone_number에 요소 하나하나에 접근하기 위해서는 char 배열로 바꿔줘야한다. 따라서 .toCharArray()함수를 통해 String을 char[] 배열로 바꿔준다.
4-2. char[] 배열의 제일 마지막에서 5번째 앞의 인자부터 시작해서 0번째 인자까지 for문을 돌리는데 숫자가 나온다면 *로 바꿔준다. 만약 배열의 길이가 가장 적은 4라면 int i = -1로 for문을 바로 탈출하여 아무 숫자도 바뀌지 않는다.
4-3. String으로 return 하기 위해서 바뀐 char[] 배열을 String.valueOf()함수를 통해서 다시 String형으로 바꿔주고 return한다.
5. 참고
5-1. phone_number의 길이가 최대 20일 수 있기 때문에 숫자 이외의 문자들도 전화번호에 존재할 수 있다고 생각했다. 따라서 뒤의 숫자 4자리를 제외하고 나머지 부분에서 숫자인 경우에만 *로 바꿔주게끔 만들었다. 그 결과로 if문을 추가하였다.
if ('0' <= answer[i] && answer[i] <= '9') {
answer[i] = '*';
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
부족한 금액 계산하기(JAVA) (0) | 2022.01.15 |
---|---|
행렬의 덧셈(JAVA) (0) | 2022.01.15 |
x만큼 간격이 있는 n개의 숫자(JAVA) (0) | 2022.01.15 |
평균구하기(JAVA) (0) | 2022.01.15 |
없는숫자더하기(JAVA) (0) | 2022.01.15 |