본문 바로가기
Language/Java

[Programmers | Java | 연습문제 풀이] 핸드폰 번호 가리기 - Solution with String.format() & repeat() & substring()

by ㅇ달빛천사ㅇ 2024. 6. 23.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기  |  Algorithm CODEKATA

📱핸드폰 번호 가리기

🏷 관련 주제 : String format() repeat() substring() length()




✔ Solution with String.format() & repeat() & substring()

class Solution {
    public String solution(String phone_number) {
        int len = phone_number.length();
        String answer = String.format("%s%s", "*".repeat(len - 4), phone_number.substring(len - 4, len));
        
        return answer;
    }
}
채점 결과


💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 매개변수로 받은 전화번호 문자열 phone_number를 뒤 네자리 숫자만 남기고 *로 가려서 반환하시오.


처음 쓴 코드는 아래와 같았다.

class Solution {
    public String solution(String phone_number) {
        String answer = "*".repeat(phone_number.length() - 4) + phone_number.substring(phone_number.length() - 4, phone_number.length());
        
        return answer;
    }
}
채점 결과

String 객체의 length()메서드로 문자열의 길이를 구한 후,
String 객체의 repeat() 메서드를 이용하여
문자열의 길이에서 뒤 숫자 네자리의 길이 4를 뺀 만큼 "*"가 반복적으로 이어져 있는 문자열을 만들고
String 객체의 substring()메서드를 이용하여
phone_number의 뒤 네자리를 잘라
덧셈 연산자를 이용하여 두 문자열을 합쳐 answer에 할당 후, 반환하였다.

그런데 저번에 덧셈 연산자보다 String.format()메서드가 더 빨랐던 것이 기억이 나서 코드를 바꾸어 보았는데 속도가 훨씬 빨라졌다.


💬 무엇을 새롭게 알았는지

문자열 합치기는 덧셈 연산자보다는 String.format()을 이용하자.

728x90


Top