Code/Programmers

핸드폰 번호 가리기

MuGrammer 2021. 9. 2. 15:39

https://programmers.co.kr/learn/courses/30/lessons/12948?language=java 

 

코딩테스트 연습 - 핸드폰 번호 가리기

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

programmers.co.kr

 

1. 처음엔 replace 와 정규식을 이용해 변환해볼까 생각했었다. 하지만 정규식엔 자신이 없으므로 다음 대안으로..

 

2. StringBuilder와 substring을 사용하여 해볼까도 했음. 끝 4자리를 제외한 자릿수만큼 StringBuilder에 아스타(*)를 추가할까 싶었는데.. 생각보다 느렸다. 

 * (별표) 의 영문명칭은 asterisk (애스터리스크) 라고 함. 

 

3. 최종적으로는 최대한 단순하게 한번의 for문과 한번의 비교연산만 되도록.. 

 

class Solution {
    public String solution(String phone_number) {
        
        
        StringBuilder answer = new StringBuilder();
        
        for(int i=0, max = phone_number.length(), maskingIdx = max - 4; i < max; i++) {
            answer.append( i < maskingIdx ? "*" : phone_number.charAt(i));
            
        }
        
        return answer.toString();
    }
}

 

테스트 1 〉	통과 (0.09ms, 60.5MB)
테스트 2 〉	통과 (0.13ms, 72.4MB)
테스트 3 〉	통과 (0.12ms, 72.6MB)
테스트 4 〉	통과 (0.10ms, 69.6MB)
테스트 5 〉	통과 (0.09ms, 73.2MB)
테스트 6 〉	통과 (0.10ms, 72.7MB)
테스트 7 〉	통과 (0.10ms, 72MB)
테스트 8 〉	통과 (0.10ms, 69.1MB)
테스트 9 〉	통과 (0.09ms, 59.3MB)
테스트 10 〉	통과 (0.14ms, 73.6MB)
테스트 11 〉	통과 (0.12ms, 73.7MB)
테스트 12 〉	통과 (0.13ms, 58MB)
테스트 13 〉	통과 (0.10ms, 61.2MB)

채점 결과
정확성: 100.0
합계: 100.0 / 100.0

 

 

반응형

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

[프로그래머스] 키패드누르기  (0) 2021.09.02