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

Alal11·2022년 7월 22일
1
post-thumbnail

출처

https://school.programmers.co.kr/learn/courses/30/lessons/12948


문제 설명

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


제한 조건

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

입출력 예

phone_numberreturn
"0 1 0 3 3 3 3 4 4 4 4""* * * * * * * 4 4 4 4"
"0 2 7 7 7 8 8 8 8""* * * * * 8 8 8 8"

➡️문제 분석

4~20자리인 전화번호가 주어졌을 때, 뒷 4자리를 제외한 나머지 숫자를 전부 *로 바꾼다.


➡️코드(⭕)

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.

    char* answer = (char*)malloc(1);

    strcpy(answer, phone_number);				// phone_number의 문자열을 answer로 복사

    for (int i = 0; i < strlen(phone_number) - 4; i++) {	// 뒷 4자리를 제외한 부분을
        answer[i] = '*';									// 모두 *로 바꾸기
    }
    return answer;
}

➡️코드 분석

  1. strcpy 함수를 사용하여 answer에 phone_number의 문자열을 복사시킨다.
  1. 번호의 길이가 0부터 뒷 4자리를 제외한 숫자들을 모두 *로 바꾼다.
  1. *로 바꾼 번호인 answer를 반환 한다.

➡️end

알 것 같은데 모르겠어서 다른 분들의 코드를 참고하며 풀었다. strcpy 함수를 내가 배웠던가..? 배운지 얼마나 됐다고 벌써 기억이 가물가물..

0개의 댓글