특정 모음 제거하기

김종현·2023년 4월 1일
0

1. 막힌 부분

-replace나 replaceAll을 사용하여 풀고 싶었는데 모음을 깔끔하게 모아서 대체할 방법을 찾지 못했다.
-배열 메소드를 사용하기에는 기존의 문자열의 공백을 지킬 수 없을 것 같아서 중도 포기했다.
-객체를 통해 풀어내기에는 아직 내 객체에 대한 이해도와 사용 능력이 부족했다.

2. 막힌 부분의 해결

-결국 하드코딩으로 replaceAll을 붙여서 풀었다.

3. 내 풀이

function solution(my_string) {
    var str = my_string.replaceAll('a', '')
    .replaceAll('e', '')
    .replaceAll('i', '')
    .replaceAll('o', '')
    .replaceAll('u', '');
    
    return str    
}

-처참한 하드코딩이다...

4. 다른 사람의 풀이 중 좋았던 코드 및 분석

function solution(my_string) {
    return my_string.replace(/[aeiou]/g, '');
}
  • 정규식을 통해 깔끔하게 풀어냈다.
function solution(my_string) {
    return Array.from(my_string).filter(t => !['a', 'e', 'i', 'o', 'u'].includes(t)).join('');
}
  • 나도 filter를 통해 풀어보려고 했었지만 이런식으로 조건을 달 수 있다는 것을 몰라서 포기했었다.
  • 복사한 배열 중 모음이 들어있지 않은 요소들로만 배열을 만들어 붙이면 공백까지 보존할 수 있다.

5. 새로 배운 것

ⓐ정규식을 활용하면 특정 문자 제거에 아주 용이하다

ⓑ특정 배열의 요소를 포함하지 않는 요소들로만 이루어진 문자열 조건을 만드는 예시를 배웠다.

ⓒinclude는 문자열/배열 메소드다.

6. 이미 지난 풀이 중 괜찮았던 다른 사람의 풀이 : 짝수 홀수 개수 배열로 구하기.

[짝수 개수, 홀수 개수] 형태의 배열을 반환하는 문제

function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}
  • 배열의 인덱스를 정말 잘 활용한 것 같다. 인덱스의 값이 0이면 짝수 인덱스의 숫자가 오르고 1이면 홀수 인덱스의 숫자가 오르게 되어 다른 코드를 더 적을 필요가 없어진다.
profile
나는 나의 섬이다.

0개의 댓글