728x90
코딩테스트 연습 - 핸드폰 번호 가리기 | 프로그래머스 (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)
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
'Programmers > C++' 카테고리의 다른 글
[C++] 프로그래머스 :: 평균 구하기 (0) | 2021.09.14 |
---|---|
[C++] 프로그래머스 :: 하샤드 수 (0) | 2021.09.14 |
[C++] 프로그래머스 :: 행렬의 덧셈 (0) | 2021.09.14 |
[C++] 프로그래머스 :: x만큼 간격이 있는 n개의 숫자 (Lv.1) (0) | 2021.09.13 |
[C++] 프로그래머스 :: 직사각형 별찍기 (Lv.1) (0) | 2021.09.13 |