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