반응형
핸드폰 번호 가리기
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "027778888" |
코드
class Solution {
public String solution(String phone_number) {
String answer = "";
for(int i=0; i<phone_number.length(); i++){
if(phone_number.length()-i > 4){
answer += "*";
}else{
char ch = phone_number.charAt(i);
answer += Character.toString(ch);}
}
return answer;
}
}
해설
나는 phone_number - x = 4를 생각해서 x의 값을 구해서 x값이 길이가 4보다 클 때 빈 문자열 answer에 "*"를 하나씩 추가해주는 방법을 생각해서 풀었다.
문제를 해결하고 다른 사람들의 정답을 보니 정말 허탈했다.
정규식을 사용해서 1줄로 끝내는 사람, subString을 사용해 간단하게 끝내는 사람. 아직 가야 할 길이 멀다.
코드를 작성하기 전에 일단 먼저 어떤 식으로 설계를 할지 생각해야 하는 습관을 가져야겠다.
수정한 코드
class Solution {
public String solution(String phone_number) {
String answer = "";
for(int i=0; i<phone_number.length() - 4; i++) {
answer += "*";
}
return answer + phone_number.substring(phone_number.length() - 4);
}
}
phone_number 길이 -4 만큼 "*"로 채워준후
substring 메서드를 이용해서 phone_number 끝 4자리를 answer에 추가했다.
출처 : 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/12948
반응형
'코딩 테스트 > Java' 카테고리의 다른 글
[프로그래머스]Level 1 : 평균 구하기(JAVA) (0) | 2021.05.23 |
---|---|
[프로그래머스]Level 1 : 하샤드 수(JAVA) (0) | 2021.05.23 |
[프로그래머스]Level 1 : 문자열을 정수로 바꾸기(JAVA) (0) | 2021.05.18 |
[프로그래머스]Level 1 : 짝수와 홀(JAVA) (0) | 2021.05.17 |
[프로그래머스]Level 1 : x만큼 간격이 있는 n개의 숫자(JAVA) (0) | 2021.05.17 |