오늘의 목표
정예반 과제(이전 props로 만든걸 reudxToolkit으로변경) 완료하기 (O)
알고리즘 문제 풀기 (O)
타입스크립트 강의 듣기 (3주차 완료)
어려운점
문제 설명 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
``
my_string에 slice 매서드로 s길이만큼 나타내고
그뒤에 overWrite_string을 붙여준다.
``
생각을 하고 코드를
``
function solution(my_string, overwrite_string, s) {
const stringSlice = my_string.slice(0,s)
const finalstring = stringSlice+overwrite_string
return finalstring ;
}
``
이런식으로 짯는데 테스트 페이지에서 1문제는 통과 했지만 1문제를 통과하지 못했다.
원인을 찾아본 결과 내가 짠 코드에서 overwrite_string 이 부분이 slice로 짜른 부분뒤에 붙는데 my_string 최종 길이보다 짧은 단어가 들어오면 my_string에 나머지가 붙지 않고 결과값이 산출되는 부분을 알수있었다.
function solution(my_string, overwrite_string, s) { let stringSlice = my_string.slice(0,s)+overwrite_string if(my_string.length > stringSlice.length){ stringSlice += my_string.slice(s+overwrite_string.length) } return stringSlice ; }
최종코드는 위에 처럼 변경해서 완료를 했는데 우선 overwrite_string 의 길이가 들어와도
my_string의 길이보다 길때는 상관이없어서 변수를 지정하고 그경우
let stringSlice = my_string.slice(0,s)+overwrite_string 이렇게 통과하도록하였고
stringSlice의 길이가 my_string의 길이보다 짧을경우 조건식을 통해 걸러낸후
사이에 += 해서 들어갈수있도록 작성을 해서 완료했습니다. 나는 문자열 사이에 문자를 넣을때
엄청 고민을 많이했는데 생각보다 간단하게 넣을수 있다는걸 알게 되었습니다.
느낀점