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가 더 빠르다.
문제에 더 충실하고 효율적인 것 같다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : x만큼 간격이 있는 n개의 숫자 (level 1) (0) | 2019.11.07 |
---|---|
[프로그래머스]연습문제 : 행렬의 덧셈 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 하샤드 수 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 콜라츠 추측 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 최대공약수와 최소공배수 (level 1) (0) | 2019.11.07 |
댓글