프로그래밍 문제 09번 핸드폰 번호 가리기
언어선택: Java
문제번호 9
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
Solution.java 제출한 코드
class Solution {
public String solution(String phone_number) {
String answer = "";
String[] num = phone_number.split("");
int len = num.length;
for (int i = 0; i < len; i++) {
if (i < len - 4) {
answer += "*";
} else {
answer += num[i];
}
}
return answer;
}
}
제출한 코드 도출 과정
String[] num = phone_number.split("");
String 타입의 배열로 num 을 선언.
phone_number를 split을 이용해 쪼개서 담는다.
int len = num.length;
num 의 길이를 int 형 타입으로 len에 담고
for(int i=0; i<len; i++){
}
반복문 for문을 이용해 phone_number의 길이만큼 반복문을 돌린다.
(len 에는 num.length가 담겨있는데, num 에는 phone_number가 쪼개저서 담겨있으므로
i<len;에서 len이 phone_number의 길이와 같다.)
if (i < len - 4) {
if 문을 이용하여 i가 phone_number의 길이에서 -4를 뺀 수보다 작을때까지
answer += "*";
answer 변수에 *을 넣어준다.
} else {
answer += num[i];
}
if( i<len -4 ) 의 조건, 즉 i가 phone_number의 길이에서 -4를 뺀 수보다 작지 않고 커지는 순간
반복문 for문을 통해 문자를 하나씩 순서대로 넣어준다.
( String[] num = phone_number.split("") 으로 num 에는 phone_number가 쪼개저서 담겨있으므로
반복문이 돌면서 num에 하나씩 순서대로 들어간다.)
return answer;
위 값을 answer로 입력한다.
지역변수로 문제에서 주어진 핸드폰 번호를 String 타입으로 선언하고
위 코드를 실행할 수 있도록 main 메소드를 만들어 실행해보면,
class Solution09 {
public static String phone_number = "01033334444";
public String solution09() {
String answer = "";
String[] num = phone_number.split("");
int len = num.length;
for(int i = 0; i < len; i++) {
if (i < len - 4) {
answer += "*";
} else {
answer += num[i];
}
}
return answer;
}
public static void main(String[] args) {
Solution09 sl = new Solution09();
String v = sl.solution09();
System.out.println(v);
}
}
문제에서 주어진 상황대로, 끝자리 4444 만 노출되는것을 확인할 수 있다.