알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://programmers.co.kr/learn/courses/30/lessons/12948
코딩테스트 연습 - 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자
programmers.co.kr

Think🤔
맨 마지막 4자리를 제외한 나머지는 *으로 보이게 만들면 된다.
문자열의 길이만큼 반복문을 돌리고 만약 끝에서 4번째가 되면 숫자가 보이게 한다.
substring을 이용해서 풀 수 있다.
Solution✍
class Solution {
public String solution(String phone) {
String answer = "";
for(int i=0; i<phone.length(); i++){
if(4 >= phone.length()-i){
answer += phone.charAt(i);
}else{
answer += "*";
}
}
return answer;
}
}
String.toCharArray()
문자열을 한 글자씩 쪼개서 char타입에 넣어주는 메소드
다시 합쳐서 문자열을 만들 수 있음.
이 방법으로도 풀어본다.
class Solution {
public String solution(String phone) {
char[] ch = phone.toCharArray();
for(int i=0; i<phone.length()-4; i++){
ch[i] = '*';
}
return String.valueOf(ch);
}
}
substring
substring은 두 가지 방법이 있고,
첫 번째는 인자값을 하나만 받는 함수
인자값은 int 형으로 substring 하고자 하는 문자열의 앞에서 부터 몇번째 위치인가를 지정하는 값.
index 위치하여 그 이후의 모든 문자열을 리턴
class Solution {
public String solution(String phone) {
String answer = "";
for(int i=0; i<phone.length()-4; i++){
answer += "*";
}
answer += phone.substring(phone.length()-4);
return answer;
}
}
마지막 4자리 전까지 "*"로 출력하고 나머지는 phone에 있는 마지막 4개를 substring으로 잘라서 가져오면 된다.
Review🤩
return ch+"";
이렇게 리턴할 경우 ch값이 하나이면 String으로 변환되지만 지금 같은 경우 에러가 발생한다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2021.12.02 |
---|---|
[프로그래머스] 하샤드 수 (0) | 2021.12.02 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2021.12.02 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2021.12.01 |
[프로그래머스] 제일 작은 수 제거하기 (0) | 2021.12.01 |