https://programmers.co.kr/learn/courses/30/lessons/12948?language=java
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 |
---|