본문 바로가기
코딩 테스트

[프로그래머스] 문자열 겹쳐쓰기

by 주연배 2023. 12. 27.

1. 문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 
문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 
바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 

2. 제안사항

my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이

 

3. 입출력 예

my_string		overwrite_string	s	result
"Program29b8UYP"	"merS123"		7	"ProgrammerS123"
"myname1sm1so"          "ismiso"                6   "mynameismiso"

 

 

기본적으로 solution 함수가 작성되어져 있어서 이를 토대로 코드를 짜보았다!

이때 my_string의 인덱스 s부터 overwrite_string의 길이만큼 문자열을 바꿔줘야 하기 때문에 'strncpy' 함수를 사용했다!


여기서 잠깐

strncpy가 무엇인지부터 잠깐 보고가자!

strncpy란?

C 언어에서 문자열을 일부분만 복사하기 위해 사용되는 함수이며

사용 시, <string.h> 헤더 파일에 정의해준다.


따라서 . . .

 

overwrite_string의 길이를 나타내는 정수를 만들어준 후,

 strncpy를 사용하여 my_string의 s번지부터 overwrite_string의 길이만큼 overwrite_string을 복사해준다.

 

 

그 다음 main에서 출력하고자 하는 문자들을 출력한다!


 

 

🖥️ 오늘의 개발 일지

이 문제를 풀려고 2시간동안이나 발악을 했다

근데 여기저기서 찾아보니깐 strncpy함수를 사용하면 된다는 것이다..

이렇게 간단한 방법을 놔두고 for문을 돌리고 있었다니..!!!

그래도 이번 문제를 풀면서 strncpy란 함수를 알아가서 더 의미가 있었던 것 같다.

다음에 이와 비슷한 문제가 출제된다면 Strncpy 함수를 적절히 적용하여 오늘 배운 개념들을 응용해봐야겠다.