
오늘의 학습
- 코드카타
- C++
코드카타
char* solution(const char* phone_number) {
int len = strlen(phone_number);
char* answer = (char*)malloc(len + 1);
for (int i = 0; i < len; i++) {
// 뒤의 4자리가 아닌 경우 '*' 삽입
if (i < len - 4) {
answer[i] = '*';
}
// 뒤의 4자리인 경우 원본 숫자 삽입
else {
answer[i] = phone_number[i];
}
}
//문자열의 끝을 알리는 NULL 문자 추가
answer[len] = '\0';
return answer;
}
malloc 은 Memory Allocation. 동적 할당. 필요한 만큼의 메모리를 사용.
malloc(len + 1); -> 메모리 공간 확보. len + 1을 하는 이유는 마침표시의 자리가 필요하기 때문.
컴퓨터는 malloc으로 만든 메모리가 어디서 끝나는지를 자동으로 알지 못한다. 따라서 여기가 끝입니다! 라는 표시가 있어야 한다. 해당 표시가 들어가야 할 자리를 위해 1칸을 더 확보하는 것!
answer[len] = '\0' : answer의 마지막 칸에 \0 즉, 마침표시를 넣어주어야한다. 만약 넣지 않으면 뒤에 외계어가 붙는다.

해당 코드를 넣고 실행하면 아주 잘 작동하는걸 알 수 있다.

제미나이에게 더 간단하게 코드를 구현하는 방법은 없는지 물어보았다. memset, memcpy를 사용하면 더 간단하다고 한다. memset과 memcpy가 무엇인지 찾아보니 memset은 메모리를 특정 값으로 채울 때, memcpy는 메모리를 복사할 때 사용한다고 한다. 한번 사용해보자. 일단 answer의 메모리를 싹 *로 채워보자.
memset(answer, '*', len);
answer를 len길이만큼 *로 채운다. 이제 answer의 뒤의 4자리에 phone_number의 뒤의 4자리를 복사해 와서 덮어씌우자!
memcpy(&answer[len-4], &phone_number[len-4], 4);
이렇게 해도 잘 출력되는걸 알 수 있었다. 👍👍👍
C++
오늘은 기본적인 c++문법에 대한 강의를 수강하였습니다. 또한 따라치기 시간에 c++로 언리얼엔진에서 액터를 배치해보았습니다. 내일도 따라치기 시간에 집중해서 과제를 완성해내고 싶습니다.
c++로 TRPG를 만드는 과제를 보았을때 어질어질했다. 과연 내가 만들어낼 수 있을까? 아니, 할 수 있다. 강의를 듣고, 복습을 하고, 실습을 하고, 막히는 부분은 튜터님께 질문하고! 모든 방법을 동원해서 꼭 완성해낼것이다!!
'내일배움캠프' 카테고리의 다른 글
| 내일배움캠프 언리얼트랙 9일차 (0) | 2026.04.30 |
|---|---|
| 내일배움캠프 언리얼트랙 8일차 (0) | 2026.04.29 |
| 내일배움캠프 언리얼트랙 6일차 (0) | 2026.04.27 |
| 내일배움캠프 언리얼트랙 5일차 (0) | 2026.04.24 |
| 내일배움캠프 언리얼트랙 4일차 (0) | 2026.04.23 |