프로그래머스 풀이

[c++]핸드폰 번호가리기

Iam_noob 2024. 12. 6. 10:49
728x90
반응형

출처:프로그래머스

문제 설명

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

제한 조건

  • phone_number는 길이 4 이상, 20이하인 문자열입니다.

입출력 예

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

 

문제 풀이

#include <string>
#include <vector>

using namespace std;

string solution(string phone_number) {
    string answer = "";
    int length = phone_number.length() - 4;
    string star = "";
    for(int i = 0; i < length ; i++){
        star += "*";
    }
    answer = phone_number.replace(0,length,star);
    return answer;
}

 

처음엔 replace로만 별을찍어 볼 수 없을까했는데, 결국 for문으로 원래 길이만큼 별을 더한 string 만든 다음에 바꿔야하는 것을 알았다.

간단한 문제로 replace에 대해 다시한번 익힐 수 있는 문제였다.

아래는 jsp와 python 의 문제풀이다.

 

python

def solution(phone_number):
    length = len(phone_number) - 4
    stars = '*' * length
    answer = stars + phone_number[-4:]
    return answer

 

JSP

function solution(phoneNumber) {
    const length = phoneNumber.length - 4;
    const stars = '*'.repeat(length);
    const answer = stars + phoneNumber.slice(-4);
    return answer;
}

 

728x90
반응형