일기/TIL

TIL: Today I Learned 42일차 [특정 문자 제거하기]

표자 2023. 1. 10. 10:08
728x90
반응형

1. 문제점

알고리즘 문제풀이 특정문자 제거하기

 

2. 시도해본 것들

배열 myString을 만들고 문자열 my_string을 바로 대입하여 들어가도록 하려했다.

myString=my_string 과 같이 하자 에러가 발생했다.

 

1) 문자열을 바로 배열에 대입하면 에러 발생

VueBackbone: Adding new Model attributes after binding is not supported, provide defaults for all properties

[VueBackbone: 바인딩 후 새 모델 속성 추가가 지원되지 않음, 모든 속성에 대한 기본값 제공]

 

2) 결과값 도출시 a,b,c와 같이 간격이 생기는 문제발생

3. 해결과정

1) 문자열을 바로 배열에 대입하면 에러 발생

바로 문자열을 배열에 넣는 것이 아닌 문자열을 배열로 바꿔주는 함수를 찾았다.

 

Array.from(my_string)

 

2) 결과값 도출시 a,b,c와 같이 간격이 생기는 문제발생

처음에는 다음과 같이 리턴했다.

 

return myString.toString();

 

그러자 결과값이 a,b,c와 같이 나왔다. 배열을 바로 문자열로 바꿔주니 , 가 포함된 것이다.

toString 대신 join('')을 사용하니 해결완료

 

return myString.join('');

 

4. 알게 된 점

문자열을 바로 배열에 대입 못시키는구나 => Array.from(my_string)

배열에서 간격을 없앤 문자열을 만드려면 => return myString.join('');

 

+ 다른사람의 멋진 풀이

function solution(my_string, letter) {
    return my_string.split(letter).join('');
}

 

나의 정답풀이

function solution(my_string, letter) {
    var answer = '';
    var myString = [];
    myString = Array.from(my_string);
    for(i=0; i<myString.length; i++){
        if(myString[i] === letter){
            myString.splice(i, 1);
            i--;
        }
    }
     return myString.join('');
}

 

728x90
반응형