코딩 테스트 연습 > 연습문제 > 핸드폰 번호 가리기
C언어에 대해서 아직 학습을 진행하지 않은 상태에서,
배열과 포인터에 대해 이해하고 여러 블로그 글을 참고하여 문제를 해결했습니다.
구현한 코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
void setElement(char *arr){
*arr = '*';
}
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char *solution(const char *phone_number) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
// char *answer = phone_number;
//char* answer = (char*)malloc(sizeof(phone_number));
printf("사이즈 입니다 = %d\n", strlen(phone_number));
printf("%p\n", phone_number[0]);
printf("%p\n", phone_number[1]);
printf("%p\n", phone_number[2]);
// int phoneNumSize = strlen(phone_number);
// int a = phoneNumSize;
int a = strlen(phone_number);
printf("%d\n", a);
for(int i=0; i<a-4; i++){
printf("%c\n", phone_number[i]);
// char phone_number[i] = '*';
setElement(&phone_number[i]);
}
char *hello = "Hello";
printf("%c\n", hello[0]);
printf("%c\n", hello[1]);
printf("%c\n", hello[2]);
hello[0] = '*';
int *ptr = hello;
*ptr = '*';
printf("%p\n", ptr);
printf("%c\n", hello[0]);
return phone_number;
}
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
void setElement(char *arr){
*arr = '*';
}
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char *solution(const char *phone_number) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char *answer = (char*)malloc(1);
int a = strlen(phone_number);
for(int i=0; i < a-4; i++){
setElement(&phone_number[i]);
}
strcpy(answer, phone_number);
return answer;
}
다른 사람들의 풀이
https://programmers.co.kr/learn/courses/30/lessons/12948/solution_groups?language=c&type=all
참고 및 학습한 사이트
https://sckllo7.tistory.com/entry/sizeof-%EC%97%B0%EC%82%B0%EC%9D%98-%ED%95%A8%EC%A0%95
https://dojang.io/mod/page/view.php?id=345
https://dojang.io/mod/page/view.php?id=330
https://rumiamochi.tistory.com/20
결정적으로 도움되었던 사이트
https://dojang.io/mod/page/view.php?id=562
https://blockdmask.tistory.com/56
https://dojang.io/mod/page/view.php?id=274
https://dojang.io/mod/page/view.php?id=285
https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/reference/malloc?view=msvc-160
https://zoosso.tistory.com/801
https://dojang.io/mod/page/view.php?id=751
https://dojang.io/mod/page/view.php?id=330