본문 바로가기
Algorithm/프로그래머스

[프로그래머스]연습문제 : 핸드폰 번호 가리기 (level 1)

by HBGB 2019. 11. 7.

https://programmers.co.kr/learn/courses/30/lessons/12948

 

코딩테스트 연습 - 핸드폰 번호 가리기 | 프로그래머스

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return 01033334444 *******4444 027778888 *****8888

programmers.co.kr

 

방법 1 : 새 문자열 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
    public String solution(String phone_number) {
 
        StringBuilder sb = new StringBuilder();
        
        // 뒤 4자리 제외한 길이만큼 '*' append
        for (int i = 0; i < phone_number.length() - 4; i++) {
            sb.append('*');
        }
 
        sb.append(phone_number.substring(phone_number.length() - 4));
 
        return sb.toString();
    }
}
Colored by Color Scripter

 

방법 2 : 기존 문자열 -> char배열 -> '*' 대입

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
    public String solution(String phone_number) {
 
        // String -> char배열
        char[] arrChar = phone_number.toCharArray();
 
        // 0부터 길이 - 4까지 '*' 로 대체
        for (int i = 0; i < arrChar.length - 4; i++) {
            arrChar[i] = '*';
        }
 
        return String.valueOf(arrChar);
    }
}
Colored by Color Scripter

 

방법 2가 더 빠르다. 

문제에 더 충실하고 효율적인 것 같다. 

 

댓글