본문 바로가기
Programmers/C++

[C++] 프로그래머스 :: 핸드폰 번호 가리기

by Sin_ 2021. 9. 14.
728x90

코딩테스트 연습 - 핸드폰 번호 가리기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 핸드폰 번호 가리기

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

programmers.co.kr


1. 연습 문제

2. 문제 풀이

3. 소스 코드

4. 결과


1. 연습 문제
  • 문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때,
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 * 으로 가린 문자열을 리턴하는 함수,
solution을 완성해주세요.
  • 제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.
  • 입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"
2. 문제 풀이
문제를 보시면 "전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *" 이라는 문구가 있습니다.
또한, 제한조건은 "s는 길이 4 이상, 20 이하인 문자열입니다."이라는 조건도 있습니다.
여기서 저희가 가장 먼저 생각할수 있는 경우는 s의 길이는 4 이하의 문자열은 *로 바꾸지 말아야 한다는
조건이 붙게 됩니다.
이 부분만 생각하고 코딩을 하시면 쉽게 풀 수 있는 문제입니다.

🔻 string class 사용 및 기능 정의

[C++] string Class 에 대해서 사용법 및 기능 정리 :: DDuDi_Blog (tistory.com)

 

[C++] string Class 에 대해서 사용법 및 기능 정리

안녕하세요 뚜디 입니다:) C++ string Class 에 대해 알아보도록 하겠습니다. #include string 초기화 string str; string 변수 str 생성 string str("ddudi"); string 변수 str을 "ddudi"로 초기화 string str =..

sindh718.tistory.com

3. 소스 코드
  • Solution
#include <string>
#include <vector>

using namespace std;

string solution(string phone_number) {
    string answer = phone_number, star = "";
    
    if (phone_number.size() > 4) {
         for (int i = 0; i < phone_number.size() - 4; i++) {
             star.push_back('*');
         }
        
        answer = phone_number.replace(0, phone_number.size() - 4, star);
    }
    
    return answer;
}
  • Visual Studio
#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string phone_number) {
    string answer = phone_number, star = "";

    if (phone_number.size() > 4) {
        for (int i = 0; i < phone_number.size() - 4; i++) {
            star.push_back('*');
        }

        answer = phone_number.replace(0, phone_number.size() - 4, star);
    }

    return answer;
}

int main()
{
    string answer;

    answer = solution("01033334444");
    cout << answer << endl;

    return 0;
}
4. 결과

728x90