💻Programmers

[프로그래머스 / LV1] 핸드폰 번호 가리기(JAVA)

Dorothy_YANG 2023. 10. 4. 00:25
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 = "";
        // 맨 뒤 숫자 4개 제외하고 모두 *로 변경하기
        String star = "*".repeat(phone_number.length()-4);
        answer = star + phone_number.substring(phone_number.length() - 4);
        
        return answer;
    }
}
  • 문제풀이
    1) 반복될 *의 개수를 먼저 구한다.
    2) substring으로 받아오는 phone_number를 잘라서 보여줄 부분을 정한다.
       > substring(시작점); 시작점을 알려주면 해당 부분의 끝까지 문자열을 잘라서 보여준다.
    3) 그 둘을 합치면 문제해결

 

 

#다른 사람 풀이

class Solution {
  public String solution(String phone_number) {
     char[] ch = phone_number.toCharArray();
     for(int i = 0; i < ch.length - 4; i ++){
         ch[i] = '*';
     }
     return String.valueOf(ch);
  }
}

- 내가 하고싶었던 풀이를 더 간단하게 해줬다.

- 우선 String 형의 phone_number를 toCharArray를 사용하여 한 자씩 끊어 배열에 담은 다음,
  끝에서 네자리를 제외하고 나머지 숫자들을 다 *로 만든다.

- 마지막에 valueOf를 사용하여 char 배열을 String 객체로 변환시킨다.

 

**valueOf 개념 정확히 이해하고 적용하기!

728x90