문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
나의 풀이
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(21);
int len = strlen(phone_number);
strcpy(answer,"\0");
for(int i=0;i<len-4;i++){
strcat(answer,"*");
}
strncat(answer, phone_number+(len-4), 5);
return answer;
}
다른 사람의 풀이
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(sizeof(char) * strlen(phone_number) + 1);
char* star = "****************";
strcpy(answer, phone_number);
strncpy(answer, star, strlen(phone_number) - 4);
return answer;
}
'코딩테스트' 카테고리의 다른 글
C++ ] leetCode 1769 - Minimum Number of Operations to Move All Balls to Each Box (0) | 2023.03.25 |
---|---|
C언어 ] leetCode 1689 - Partitioning Into Minimum Number Of Deci-Binary Numbers (0) | 2023.03.25 |
C언어 ] 프로그래머스 Lv. 1 - 자연수 뒤집어 배열로 만들기 (0) | 2022.05.17 |
C언어 ] 프로그래머스 Lv. 1 - 내적 (0) | 2022.05.17 |
C언어 ] 프로그래머스 Lv. 1 - 나머지가 1이 되는 수 찾기 (0) | 2022.05.17 |