알고리즘, 코딩테스트

[프로그래머스/ 코딩테스트 연습문제] 핸드폰 번호 가리기

jy3574 2024. 11. 6. 10:35

Q. 핸드폰 번호 가리기

A.

class Solution {
    public String solution(String phone_number) {
        String answer = "";

//가독성을 높이기 위해 길이를 나타내는 변수 새로 선언
//phone_number.length()를 사용하게 되면 메서드 호출이기 때문에 length 처럼 필드 접근하는 것이 효율적인 면에서도 좋음
        int length = phone_number.length();
        
//*로 바꿔줄 문자열을 새로 선언한 후에 repeat 사용
//repeat는 문자열을 주어진 횟수만큼 반복하는 메서드다.
//repeat(length-4)를 하게되면 길이-4만큼을 *로 바꾸겠다는 뜻이다.
//repaeat로 뒷 4자리 빼고 다 *로 바꿨으니까 stars+뒷4자리를 반환하면 된다.

        String stars = "*".repeat(length-4);
        answer = stars + phone_number.substring(length-4);
        return answer;
    }
}

 


<새로 알게 된 것>

1. 적절히 치환하는 것이 중요하다. 길어지니까 코드가 헷갈림

 

2. repeat()

-String 메서드 중 하나로 String 문자열을 파라미터가 주어진 횟수만큼 반복

-파라미터가 0이면 빈 문자열 반환

-파라미터가 음수면 illegalArgumentExceptionthrow 에러 발생

-파라미터가 1이면 문자열 그대로 반환

"바꿀 값".repeat(숫자); 숫자만큼 바꿈
str.repeat(숫자); // 문자열 반복