프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/12948)
자바 초급 문제의 핸드폰 번호 가리기 이다.
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.제한 조건
-
s는 길이 4 이상, 20이하인 문자열입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package programmers_핸드폰번호가리기;
import java.util.*;
public class Exam {
public String solution(String phone_number) {
String answer ="";
String b = "";
String a = "";
char[] c = new char[phone_number.length()-4];
a = phone_number.substring(phone_number.length()-4, phone_number.length());
//System.out.println(a);
/*뒷자리수 4자리 확보
* 여기에 문자열-4 만큼 *을 넣는 String 값을 만들고 둘을 합침.
* */
for(int i=0;i<phone_number.length()-4; i++ ) {
//char 배열에 각각 하나의 *를 넣는다.
c[i] = '*';
}
b = String.copyValueOf(c);
//*확보
answer = b+a;
return answer;
}
}
|
cs |
주의할 코드: String 타입 a에 .substring()메소드를 사용한다. 사용법-> String변수이름.substring(시작점,끝나는점)
컴퓨터는 순번을 0부터 시작하는사실을 알아야한다.
Arrays.copyOfRange(자를배열, 시작점, 마침점+1) 와는 달리 .substring() 메소드는 차이점이있다.
-> 자를문자열.substring(시작점,마침점) 또한 마침점도 자르는 것에 포함한다.
그렇게 a에 4자리 숫자를 얻고 char[]타입 c를 선언, 새로운 객체를 만들고 그 초기화값은 phone_number.length-4로 잡는다.
for문을 돌려서 c의 각 인덱스에 *를 넣는다.
그 후 String 타입 변수 b에 String.copyValueOf(해당char[]타입 변수 이름); 로 char[]->String 타입으로 변환
b+a를 answer에 넣어준다. 합산한 길이는 phone_number와 같아지며 뒷자리 숫자 4자리를 빼고 다 *로 입력값에 따라 산출된다.
굉장히 일차원 적으로 접근했고 쉽게쉽게 생각하려다가 이렇게 와버린 것같다. 더 좋은 코드로 해결할 수 있다는 생각이 굉장히 많이드는 문제이다. 나중에 한 번 더 접근해봐야겠다. :)
'자바 초급문제로 맨땅에 해딩하기' 카테고리의 다른 글
자바 초급문제 9-1. 2016년 다시 살펴보기 (0) | 2020.03.31 |
---|---|
자바 초급문제 9. 2016년 (0) | 2020.03.31 |
자바 초급문제 7. K번째수 (0) | 2020.03.29 |
자바 초급문제 6. 문자열을 정수로 바꾸기 (0) | 2020.03.29 |
자바 초급문제 5. 같은 숫자는 싫어 (0) | 2020.03.27 |