본문 바로가기

Algorithm/Programmers

핸드폰 번호 가리기

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.

전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건

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

입출력 예

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

 

소스코드 ( for 문을 사용하지 않고 )

class Solution {
  public String solution(String phone_number) {
      StringBuilder answer = new StringBuilder(phone_number);
      int len = answer.length()-4;
      if(len == 0) return answer.toString();
      answer.delete(0,len);
      String strFomat = String.format("%"+len+"s"," ").replace(" ","*");
      return answer.insert(0,strFomat).toString();
  }
}

소스코드 ( for 문을 사용하고 ) 

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

 

최대한 직접적으로 반복문을 사용하지 않고, 작성하려다 보니 위와같이 작성 했을때

시간적인 부분이 좀 늦어 혹시나 해봤는데.. 이런 문제는 for 가 더 괜찮은 결과를 주고 있다.

'Algorithm > Programmers' 카테고리의 다른 글

행렬의 덧셈  (0) 2020.01.24
x만큼 간격이 있는 n개의 숫자  (0) 2020.01.21
하샤드 수  (0) 2020.01.21
평균 구하기  (0) 2020.01.21
콜라츠 추측  (0) 2020.01.21