728x90
핸드폰 번호 가리기
문제설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 * 으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
기본코드
class Solution {
public String solution(String phone_number) {
String answer = "";
return answer;
}
}
문제풀이
11자리 숫자가 제공된다고 가정하였을 때, 8자리까지는 문자열 "*"로 출력
나머지는 기본 입력된 숫자 그대로 출력하면 된다.
이를 위해서는 받은 숫자값을 나누고 끝 4자리만 남겨두고 "*"로 변환하고, 뒤는 그대로 출력하면 된다.
이전에 배워두었던 substring 함수를 사용하면 되는 것이다.
추가로 문자열 반복 함수 .repeat()를 사용하여 문자열"*"를 반복 출력하였다.
//첫 번째 코드
class Solution {
public String solution(String phone_number) {
String star = "*";
String blank = "";
for(int i = 0; i<phone_number.length()-3; i++){
blank = star.repeat(i);
}
String real = phone_number.substring(phone_number.length()-4);
String answer = blank + real;
return answer;
}
}
위와 같은 문제 풀이를 통하여 해결을 완료하였으나 코드가 상당히 더러웠다.
다른 사람들의 문제풀이를 보고, 내가 쓸데없이 두 세줄 작성한 코드를 훨씬 깔끔하게 처리할 수 있다는걸 발견하였고
그 방법이 내가 못 할 방법이 아니란 것도 알게되었다.
배움을 통하여 기존 코드를 다듬어봤다.
아직 많이 부족하긴 하지만 그래도 초기 코드에 비해서는 훨씬 나아진 것 같다.
개발자의 길은 멀고도 험하다.
Solution.java
class Solution {
public String solution(String phone_number) {
String answer = "";
for(int i = 0; i<phone_number.length()-4; i++){
answer += "*";
}
answer += phone_number.substring(phone_number.length()-4);
return answer;
}
}
728x90
'🤖Algorithm' 카테고리의 다른 글
[프로그래머스] x만큼 간격이 있는 n개의 숫자 Java (0) | 2022.07.18 |
---|---|
[프로그래머스] 행렬의 덧셈 Java (0) | 2022.07.18 |
[프로그래머스] 없는 숫자 더하기 Java (0) | 2022.07.16 |
[프로그래머스] 평균 구하기 Java (0) | 2022.07.16 |
[프로그래머스] 음양 더하기 Java (0) | 2022.07.16 |