요새 파이썬으로만 문제를 풀다가 오랜만에 C++ 로 문제를 풀려고하니 문법을 죄다 까먹었다;;
특히 STL, 문자열........... 당분간 C++ 문법 복기용 문제들을 풀어볼 예정이다..
문제
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
위의 입출력 예시 그대로인 간단한 문제이다. 뒤의 숫자 네개를 제외하고 마스킹(*)하면 된다.
(phone_number는 길이 4 이상, 20이하인 문자열)
풀이
#include <string>
#include <iostream>
using namespace std;
string solution(string phone_number) {
string star = "****************";
string subs = phone_number.substr(phone_number.size()-4, phone_number.size());
int ln = phone_number.size()-4;
string answer = star.substr(0,ln);
answer+=subs;
return answer;
}
전화번호의 뒤 숫자 4개를 substr로 끊고
4개를 제외한 길이만큼 * 문자열을 만들어 둘을 합쳐서 return 했다.
반응형
'Problem Solving > Programmers' 카테고리의 다른 글
프로그래머스 (Level 2) : 피보나치 수 /C++ /DP, 메모이제이션 (0) | 2022.10.08 |
---|---|
프로그래머스 (Level 2) : 이진 변환 반복하기 /C++ (string) /월간 코드 챌린지 시즌1 (0) | 2022.10.08 |
프로그래머스 (Level 2) : 게임 맵 최단거리/ Python/ 너비 우선 탐색(BFS, deque) (0) | 2022.08.24 |
프로그래머스 (Level 2) : JadenCase 문자열 만들기 / Python (0) | 2022.08.22 |
프로그래머스 (Level 2) : 멀리뛰기 / Python / dp (0) | 2022.08.11 |