저장을 습관화

프로그래머스 LV.0 문자열 겹쳐쓰기 본문

코딩 테스트/프로그래머스 - 자바스크립트

프로그래머스 LV.0 문자열 겹쳐쓰기

ctrs 2023. 9. 9. 00:06

프로그래머스 LV.0 문자열 겹쳐쓰기

https://school.programmers.co.kr/learn/courses/30/lessons/181943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

문자열 겹쳐쓰기


2. 문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다.

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


3. 제한 사항

my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.

1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000

0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이


4. 예시

my_string overwrite_string s result
"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"


5. 기본 제공 코드

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


6. 제출한 내 답

const solution = (my_string, overwrite_string, s) => {
  return (
    my_string.substr(0, s) +
    overwrite_string +
    `${my_string.substr(`${overwrite_string.length + s}`)}`
  );
};

 

6-2. VSC에 작성한 내용

const solution = (my_string, overwrite_string, s) => {
  const save = my_string.substr(0, s);
  //   console.log(save);

  //   console.log(overwrite_string.length);
  //   console.log(my_string.substr(`${overwrite_string.length + s}`));

  let answer =
    save +
    overwrite_string +
    `${my_string.substr(`${overwrite_string.length + s}`)}`;
  return answer;
};

// 테스트
console.log(solution("He11oWor1d", "lloWorl", 2));
console.log("--------구분선--------");
console.log(solution("Program29b8UYP", "merS123", 7));

 

연습

// console.log("Program29b8UYP"[7]);

const first = "He11oWor1d";
const second = "lloWorl";
const third = 2;

// console.log(first.substr(0, third));
const a = first.substr(0, third);

// console.log(first.substr(third, second.length));
const b = first.substr(third, second.length);

console.log(a + second);

const remain = first.substr(`${a.length + b.length}`);
console.log(remain);

console.log(a + second + remain);

 

7. 특이사항

뭔가 그냥 괜히 해보고 싶어서 줄이고 줄이고 줄여써봤는데

쓰고 보니까 너무 지저분하고 보기 어려워서

이건 좀 아니다라고 생각됨


8. 다른 사람이 작성한 답

8-1.

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

근데 이 사람도 나랑 비슷하게 했네

 

8-2.

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

 

8-3.

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

 

8-4.

function solution(my_string, overwrite_string, s) {
    let answer = '';
    for(let i = 0;i < s;i++){
        answer += my_string[i];
    }
    for(let i = 0; i < overwrite_string.length; i++){
        answer += overwrite_string[i];
    }
    for(let i=s+overwrite_string.length;i<my_string.length;i++){
        answer += my_string[i]
    }
    return answer;
}

 

다른 사람들 풀이 보니 생각보다 비슷하게 한 사람이 대부분이라 좀 의외였음

어찌되든 돌아가기만 하면 된다는걸까