실제로 서비스를하다보면 이런 기능을 구현해야할것같다.
어떻게 해볼까 생각하다가 그냥 쉽게 split해서 배열로 바꾸고 마지막 4자리빼고나머진 다 *로 바꾸고, 다시 배열을 String으로 바꿔야겠다 생각했다.
public static String solution(String phone_number) {
//phone_number 를 하나씩 자르기위해 배열로만듬
String[] phone = phone_number.split("");
//마지막 4자리빼고 *로 만듬
for(int i = phone_number.length()-5; i >= 0; i--){
phone[i] = "*";
}
//StringBuilder 객체 생성(배열을 String으로 만들기위해)
StringBuilder stringBuilder = new StringBuilder();
//stringBuilder객체에 배열에있는 데이터 넣기
for(int j = 0; j < phone.length; j++){
stringBuilder.append(phone[j]);
}
//stringBuilder를 String으로 변환
String answer = stringBuilder.toString();
return answer;
}
이게 효율적인가 생각해보고 지피티한테 풀어보라니깐 얘도 StringBuilder를 쓴다.
public static String solution(String phone_number) {
int length = phone_number.length();
StringBuilder answer = new StringBuilder();
for (int i = 0; i < length - 4; i++) {
answer.append('*');
}
answer.append(phone_number.substring(length - 4));
return answer.toString();
}
뭐 얼추 비슷하다. 반복문 걍 저렇게쓸걸... "뒤에서"라는 키워드에 꽃혀 이상하게 만들었다.
'Java > 알고리즘' 카테고리의 다른 글
내적, 가운데 글자 가져오기 (1) | 2024.01.22 |
---|---|
제일 작은 수 제거하기 (0) | 2024.01.19 |
없는 숫자 더하기 (0) | 2024.01.17 |
나누어 떨어지는 숫자 배열(향상된 for문 꿀팁 idx++) (0) | 2024.01.16 |
서울에서 김서방 찾기, "==" 와 ".equals()"의 차이 (0) | 2024.01.12 |