연습장

10. 문자열 겹쳐쓰기 본문

프로그래머스/0단계

10. 문자열 겹쳐쓰기

js0616 2023. 6. 17. 22:23

Q. 문자열 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의 길이

 

function solution(my_string, overwrite_string, s) {
    var answer = '';
    return answer;
}


뭔가 기본 코드가 간결해졌다. 

 

제출코드가 기존의 뭔가 어려운 것 에서 함수로 바뀌었다. 

function 함수이름 ( 매개변수 )  { 명령  return 반환값}

문제에서 주어지는 입력 값이 매개변수에 들어가고

명령에 정답을 푸는 코드를 넣고

return 값에 원하는 출력값이 나오도록 코드를 만들면 될 것이다. 

 

 

문제부터 해석해보자면

 

my_string 에서 s 번째 인덱스의 문자를 

overwrite_string 과 1:1 로 맞 바꾸며 남은  my_string  을 더한다.

 

ex)

my_string = "012345" 

overwrite_string = "987" 

s = 2 일경우

 

019875  // retrun 되게 하면 된다.

 

my_string 인덱스 i 에 따라서 

 

1. i<s 일 경우 my_string 문자

2. s+overwrite_string.length-1 < i 일 경우 my_string

3. 그외 overwrite_string

 

function solution(my_string, overwrite_string, s) {
    var answer = '';
    
    for (let i=0 ; i < my_string.length ; ++i) {               // 1
        if(i < s) {
            answer = answer + my_string[i]
        }
        else if (s+overwrite_string.length-1 < i) {          // 2
            answer = answer + my_string[i]
        }
        else {
            answer = answer + overwrite_string[i-s]        // 3   overwrite_string 값은  0 부터 가져와야하므로 i - s 가 된다.
        }}
    
    return answer
}

 


다른사람 코드

 

function solution(my_string, overwrite_string, s) {    
    return my_string.slice(0,s)+overwrite_string+my_string.slice(s+overwrite_string.length);
}

 

slice 를 이용하여 앞부분을 가져오고    // 1 

중간부분 (overwrite_string)                   // 3

slice 를 이용하여 뒷부분을 가져옴        //  2  와 같은 기능을 한다고 볼 수 있다. 

 

 

문자열.slice(a, b)  : a 인덱스 값 이상 b 인덱스 값 미만의 값을 가져온다. 

 

str = "0123456"
str.slice(3,6) //  345

 

 배열도 가능하다

[...str].slice(3,6) // [ '3', '4', '5' ] 

 

str = 0123456 // 숫자의 경우 에러가 난다. 

 

 

'프로그래머스 > 0단계' 카테고리의 다른 글

12. 문자 리스트를 문자열로 변환하기  (0) 2023.06.19
11. 문자열 섞기  (0) 2023.06.17
09. 홀짝 구분하기  (0) 2023.06.17
08. 문자열 돌리기  (2) 2023.06.17
07. 문자열 붙여서 출력하기  (0) 2023.06.17