문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요

 

제한 조건

- phone_number는 길이 4 이상, 20이하인 문자열입니다

 

입출력 예시

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

 

나만의 해설

처음에는 substring을 이용해서 앞에값 자르고 뒤에값 잘라서 합칠까 라는 생각을 했는데

너무 코드도 많아지고 복잡해져서 다른 방법을 모색해봤다

일단 들어온 값의 전체 수만큼 for문을 돌게하고 전체 수의 -4 위치까지 *을 찍게했다

그리고 나머지 4자리는 각각의 char 값을 charAt을 이용해서 붙여줬다

 

public class Solution {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("문자를 입력하세요 : ");
        String phone_number = scanner.next();

        String answer = "";
        for(int i = 0; i<phone_number.length(); i++){
            if(i<phone_number.length()-4){
                answer += "*";
            }else {
                answer += phone_number.charAt(i);
            }
        }
        System.out.println(answer);
    }
}