반응형
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 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 |
---|