게임 개발 로그
2일차 / 문자열 겹쳐 쓰기 / C++ / 기초 본문
문자열 겹쳐쓰기
문제 설명
- 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
- 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
입출력 예
my_string | overwrite_string | s | result |
"He11oWor1d" | "lloWorl" | 2 | "HelloWorld" |
"Program29b8UYP" | "merS123" | 7 | "ProgrammerS123" |
입출력 예 설명
입출력 예 #1
예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.
입출력 예 #2
예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.
내 코드
string answer = "";
for (int i = 0; i < my_string.length(); i++) {
if (i < s || i > overwrite_string.length() + s - 1)
answer += my_string[i];
else
answer += overwrite_string[i - s];
}
return answer;
다른 사람 코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string overwrite_string, int s) {
string answer = "";
answer = my_string.replace(s,overwrite_string.size(),overwrite_string);
return answer;
}
- 문자열의 기능 replace 사용하는 방법
- 훨씬 간단하고 직관적인 함수 사용
- 함수 외우자
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string overwrite_string, int s)
{
for (auto i = 0; i < overwrite_string.size(); ++i)
{
my_string[i + s] = overwrite_string[i];
}
return my_string;
}
- answer 변수를 사용하지 않고 my_string 에 바로 overwrite_string 을 덮어 쓰는 방법
- 훨씬 더 간단하게 구현할 수 있다는 강점
'코테' 카테고리의 다른 글
3일차 / 문자 리스트를 문자열로 변환하기 / C++ / 기초 (0) | 2023.11.02 |
---|---|
3일차 / 문자열 섞기 / C++ / 기초 (0) | 2023.11.02 |
2일차 / 홀짝 구분하기 / C++ / 기초 (0) | 2023.11.01 |
2일차 / 문자열 돌리기 / C++ / 기초 (0) | 2023.11.01 |
1일차 / 알파벳 대소문자 변환 / C++ / 기초 (0) | 2023.10.31 |