본문 바로가기
Java/알고리즘

[프로그래머스/알고리즘] 핸드폰 번호 가리기 (자바/Java)

by 전재경 2022. 11. 18.

문제 설명

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

 

제한 조건

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

 

 

Step1. 문제분석

우선 뒷 4자리를 제외하고 ' * ' 로 표기하라고 했으니 for문을 돌때 -4의 값만큼만 * 을 체크하고

그 외의 값에는 문자를 가져오면 된다고 생각했다.

 

그래서 생각한것이 for문을 phone_number의 길이만큼 돌고

if 문을 통해 그 길이의 -4만큼 *

else 그 외의 번호는 charAt를 통해 넣으면 된다고 생각했다.

 

Step2. 문제풀이 코드

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        
        for (int i = 0 ; i < phone_number.length(); i++){

        if(i < phone_number.length() - 4){
            answer += "*";
        }else{
            answer += phone_number.charAt(i);
    }
        }
         return answer;
    }   
    
}

 

 

Step3. 다른 사람의 풀이 코드

 

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);
  }
}

문자형 배열만들면 문자열을 변환시키는 메소드로 출력

이 방법에 대해도 공부해서 정리해야겠다.

 

class Solution {
  public String solution(String phone_number) {
    return phone_number.replaceAll(".(?=.{4})", "*");
  }
}

정규식으로 푸는 방법이 있었다. 정규식에 대해 아직 잘모르느 WIL을 작성할때 하나하나 보면서 정리하고 싶은 내용에 추가해야겠다.

댓글