본문 바로가기

프로그래머스(Java)/Level 1

[프로그래머스] 핸드폰 번호 가리기

728x90

코드 힌트

  1. StringBuilder 사용:
    • 문자열을 자주 수정하는 경우, StringBuilder를 사용하면 효율적입니다. 물론 String을 사용하셔도 상관없는 문제이지만 StringBuilder 연습도 같이 하면 좋을 것 같습니다.
  2. 문자열 길이 확인:
    • 전화번호의 길이를 확인하여 반복문을 통해 각 문자를 처리합니다. 반복문은 전화번호의 길이만큼 실행됩니다.
  3. 조건문 사용:
    • 조건문을 사용하여 마지막 4자리가 아닌 경우에는 '*'를 추가하고, 마지막 4자리는 원래 숫자를 그대로 추가합니다.
  4. StringBuilder 결과 반환:
    • 모든 문자에 대해 처리가 끝난 후, StringBuilder 객체를 문자열로 변환하여 반환합니다. StringBuilder의 toString() 메서드를 사용합니다.
  5. 메소드 활용하여 문제풀기:
    • for 문을 사용하셔도 괜찮지만 String에는 substring() 메소드와 repeat() 메소드가 있습니다.
    • 정답에 같이 적어놓겠습니다.

 

 


더보기
class Solution {
    public String solution(String phone_number) {
        // StringBuilder 객체를 생성하여 결과 문자열을 만들기 위해 사용
        StringBuilder sb = new StringBuilder();
        
        // 전화번호의 각 문자에 대해 반복
        for (int i = 0; i < phone_number.length(); i++) {
            // 마지막 4자리가 아닌 경우 '*'를 추가
            if (i < phone_number.length() - 4) {
                sb.append("*");
            } else {
                // 마지막 4자리는 원래 번호를 그대로 추가
                sb.append(phone_number.charAt(i));
            }
        }
        
        // StringBuilder를 문자열로 변환하여 반환
        return sb.toString();
    }
}

 

substring(), repeat() 활용하기

class Solution {
    public String solution(String phone_number) {
        // "*".repeat(phone_number.length() - 4) "*"를 n개 만큼 생성합니다.
        // phone_number.substring(phone_number.length() - 4, phone_number.length()) 문자열의 n~m-1까지 자릅니다.
        return "*".repeat(phone_number.length() - 4) + phone_number.substring(phone_number.length() - 4, phone_number.length());
    }
}
728x90