코딩테스트(Level 0~1)

[JAVA, Programmers] 핸드폰 번호 가리기(자바)

justdoIT0730 2022. 11. 20. 18:46
728x90
728x90

1. 문제 설명

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

 

2. 제한 조건

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

 

3. 입출력

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

 

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        String a[] = phone_number.split("");		//1
        if(a.length<5){					//2
            answer = phone_number;
        }else{		
            for(int i =0; i<a.length-4; i++){		//3
                a[i]="*";
                answer = String.join("",a);		//4
            }    
        }
        return answer;
    }
}

//1. phone_number를 1자리씩 a 배열에 저장

//2. phone_number가 4자리일 경우 answer은 phone_number 저장

//3. phone_number가 5자리 이상일 경우 배열 길이 - 4 만큼 for문을 반복하여 배열 마지막 4자리 외 모든 요소에 * 삽입

//4. a 배열을 answer에 한 문자형식으로 저장

 


문제 풀이 중에도 불필요한 배열 사용으로 깔끔하지 못하다고 생각해 이후 다른 분들의 풀이를 보며 추가적으로 배운 항목

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);	//1

        return answer;
  }
}

//1 

x.substring(y)함수 : phone_number.substring(phone_number.length() - 4);

- x에 저장된 문자열 중 뒤에서 y번째 문자열까지 출력

728x90
728x90