문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
Step1. 문제분석
우선 뒷 4자리를 제외하고 ' * ' 로 표기하라고 했으니 for문을 돌때 -4의 값만큼만 * 을 체크하고
그 외의 값에는 문자를 가져오면 된다고 생각했다.
그래서 생각한것이 for문을 phone_number의 길이만큼 돌고
if 문을 통해 그 길이의 -4만큼 *
else 그 외의 번호는 charAt를 통해 넣으면 된다고 생각했다.
Step2. 문제풀이 코드
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.charAt(i);
}
}
return answer;
}
}
Step3. 다른 사람의 풀이 코드
class Solution {
public String solution(String phone_number) {
char[] ch = phone_number.toCharArray();
for(int i = 0; i < ch.length - 4; i ++){
ch[i] = '*';
}
return String.valueOf(ch);
}
}
문자형 배열만들면 문자열을 변환시키는 메소드로 출력
이 방법에 대해도 공부해서 정리해야겠다.
class Solution {
public String solution(String phone_number) {
return phone_number.replaceAll(".(?=.{4})", "*");
}
}
정규식으로 푸는 방법이 있었다. 정규식에 대해 아직 잘모르느 WIL을 작성할때 하나하나 보면서 정리하고 싶은 내용에 추가해야겠다.
'Java > 알고리즘' 카테고리의 다른 글
[프로그래머스/알고리즘] x만큼 간격이 있는 n개의 숫자(자바/Java) (0) | 2022.11.19 |
---|---|
[프로그래머스/알고리즘] 행렬의 덧셈 (자바/Java) (0) | 2022.11.19 |
[프로그래머스/알고리즘] 평균 구하기 (자바/Java) (0) | 2022.11.18 |
[프로그래머스/알고리즘] 음양 더하기 (자바/Java) (0) | 2022.11.18 |
[프로그래머스/알고리즘] 없는 숫자 더하기 (자바/Java) (0) | 2022.11.18 |
댓글