본문 바로가기
Java/알고리즘

핸드폰 번호 가리기

by 티코딩 2024. 1. 18.

실제로 서비스를하다보면 이런 기능을 구현해야할것같다.

어떻게 해볼까 생각하다가 그냥 쉽게 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();
    }

뭐 얼추 비슷하다. 반복문 걍 저렇게쓸걸... "뒤에서"라는 키워드에 꽃혀 이상하게 만들었다.