🔥 CodingTest/프로그래머스

[Lv.0] ad 제거하기

김_수댕 2024. 4. 30. 12:52
반응형

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

✅ 문제

문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.

제한 사항

  • 1 ≤ strArr의 길이 ≤ 1,000
    • 1 ≤ strArr의 원소의 길이 ≤ 20
    • strArr의 원소는 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

strArr  result
["and","notad","abcd"] ["and","abcd"]
["there","are","no","a","ds"] ["there","are","no","a","ds"]

🔎 풀이 방법

includes()로 각 인덱스의 문자열에 ad가 포함되어 있는지 확인하고 ad가 포함되어 있다면 배열에서 제거한다.

let filtered
  = arr.filter((element) => element !== 'b');
// 코드 출처: <https://hianna.tistory.com/489>

이 코드처럼 filter()를 활용해서 작성하면 되겠다.

💻 코드

function solution(strArr) {
    var answer = [];
    const strToArr = [...strArr];
    for(let i = 0; i < strToArr.length; i++){ 
        if(!strToArr[i].includes("ad")) answer.push(strToArr[i]);
    }
    return answer;
}

filter 사용법을 제대로 정리해서 익힐 필요가 있겠다...

항상 머리로는 이렇게 해야지 하고 구현에서 실패하는 경우가 자주 발생하니까...

👀 추가 공부

처음 생각했던 indexOf() 활용하는 법

function solution(strArr) {
    strArr = strArr.filter((x)=>{
        return x.indexOf("ad") == -1
    })
    return strArr;
}

그 다음으로 생각했던 includes() 활용

const solution = strArr => strArr.filter(v => !v.includes('ad'))

 

제발 fiiter() 사용법 좀 익히자... 화살표 함수도 정확하게 알고 쓰고...

반응형