개발자가 되

프로그래머스 Lv.0

Lv.0 문자열 겹쳐쓰기

dltjdud 2025. 1. 18. 23:53

문제설명

문자열 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"

 

풀이

 

JAVA

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        int l = overwrite_string.length();
        int l2 = my_string.length();

        answer = my_string.substring(0,s) + overwrite_string+ my_string.substring(s+l,l2);
        return answer;
    }
}

 

Python

def solution(my_string, overwrite_string, s):
    answer = my_string[:s] + overwrite_string + my_string[s+len(overwrite_string):]
    return answer

* 이런 방법도 있다..

def solution(my_string, overwrite_string, s):
    return my_string[:s] + overwrite_string + my_string[s + len(overwrite_string):]

 

C

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

char* solution(const char* my_string, const char* overwrite_string, int s) {

  int length = strlen(my_string);
  int change_index = strlen(overwrite_string);
  char *answer = (char *)malloc(sizeof(char) * (length+1));

  for (int i = 0; i < length; i++) 
    answer[i] = my_string[i];

  for (int i = s; i < s + change_index; i++) 
    answer[i] = overwrite_string[i - s];

  answer[length] = '\0';

  return answer;

}

'프로그래머스 Lv.0' 카테고리의 다른 글

Lv.0 문자 리스트를 문자열로 변환하기  (0) 2025.01.19
Lv.0 문자열 섞기  (0) 2025.01.19
Lv.0 홀짝 구분하기  (0) 2025.01.18
Lv.0 문자열 돌리기  (0) 2025.01.14
Lv.0 문자열 붙여서 출력하기  (0) 2025.01.14