문제 설명 및 입출력 예시
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 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 = "";
String[] num = new String(phone_number).split("");
for (int i = 0; i < num.length - 4; i++) {
answer += "*";
}
for (int i = num.length - 4; i < num.length; i++) {
answer += num[i];
}
return answer;
}
}
처음에는 SubString을 이용해서 자르고 이용하려고 했지만 실패해서
그냥 split을 이용해 Stirng을 한글자 한글자 배열화 시킨 후 뒤에 4자리까지는 *로 출력하고 4자리 남았을때는 번호로 출력될 수 있게 코드를 작성해봤다.
회고
문제를 다 풀고 이런식으로 푸는 수밖에 없지ㅎㅎ라는 생각으로 다른사람이 푼 풀이를 봤다.
그랬더니 세상에 단 4줄의 코드로 이 문제를 작성한(그것도 나랑 비슷한 메소드로) 사람을 봤다.
그사람은 toCharArray()라는 메소드를 사용했던데 toCharArray메소드에 대해선 추후에 설명글을 올리겠다.
어쨌든 toCharArray()는 split과 상당히 유사한 값으로 return되었고(글자단위로 배열화) 나처럼 뒤의 숫자값을 추가해주는 것이 아닌 그냥 앞부분을 *화 시키고 valueof를 사용해 배열을 String으로 return시켜줬다.
나도 이럴줄 아는데 아직 활용을 못하는걸 보니 아직 멀었다는 생각이 든다.
💻프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12948
'실력 향상 일지 > 프로그래머스' 카테고리의 다른 글
[Java] 제일 작은 수 제거하기 (0) | 2022.10.24 |
---|---|
[Java] 나누어 떨어지는 숫자 배열 (0) | 2022.10.23 |
[Java] 서울에서 김서방 찾기 (0) | 2022.10.20 |
[Java] 두 정수 사이의 합 (0) | 2022.10.19 |
[Java] 콜라츠 추측 (0) | 2022.10.18 |