알고리즘 풀이 방법입니다.
문제(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으로 변환되지만 지금 같은 경우 에러가 발생한다.


 

+ Recent posts