JAVA) 프로그래머스 핸드폰 번호 가리기

반응형

 

문제 설명

 

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

전화번호가 문자열 phone_number로 주어졌을 때,

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

 

제한 조건

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

 

입출력 예

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

 

먼저 string 값을 배열로 옮겨 놓고 변환하면 되겠다 생각을 했는데,

배열로 변환하는 문법을 몰라서 찾아봤다

 

toCharArray()를 쓰면 되는데,

굳이 int나 string으로 바꾸지 않은 이유는

int로 바꾸면 *로 바꾸기가 애매해지고, string배열로 만들면 간단히 만들기가 어려워서였다

 

// 기본 제공 함수 형태
class Solution {
    public String solution(String phone_number) {
    	
        // 제출할 답을 넣는 string 변수
        String answer = "";
        
        // 매개변수로 받은 phone_number을 char배열로 넣어준다
        char [] numarr = phone_number.toCharArray();
        
        // 반복문에 쓰일 string 길이
        int numLen = phone_number.length();
        
        // 뒤에 4자리는 그대로 두기 때문에 미리 -4를 해주었다
        numLen -= 4;
        
        // 첫 숫자부터 뒤 4자리 제외하고 모두 * 변환해주는 for loop
        for(int i = 0; i<numLen; i++) {
            numarr[i] = '*';
        }
        
        // char 배열은 valueOf 를 이용하여 string 값으로 변환 출력해주면 된다. 
        answer = String.valueOf(numarr);
        
        return answer;
    }
}

 

처음에는 valueOf를 사용하지 않고 바로 출력했더니 이상한 숫자들이 나왔다.

char값을 string으로 변환하지 않다보니 생긴 상황이었다.

string값이 필요할때는 꼭 valueOf 를 이용하여 변환해주자!

반응형

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

JAVA) 프로그래머스 문자열다루기 기본  (0) 2021.07.14