[프로그래머스-기초] ad 제거하기

JiEun·2023년 12월 21일
0

코테/코플릿

목록 보기
36/56

ad 제거하기

문제 설명

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

제한사항

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

입출력 예

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

입출력 예 설명

입출력 예 #1
1번 인덱스의 문자열인 "notad"는 부분 문자열로 "ad"를 가집니다. 따라서 해당 문자열을 제거하고 나머지는 순서를 유지하여 ["and","abcd"]를 return 합니다.

입출력 예 #2
"ad"가 부분 문자열로 들어간 문자열이 존재하지 않습니다. 따라서 원래 배열을 그대로 return 합니다.

💻 내가 푼 코드

function solution(strArr) {
    return strArr.filter(el => !el.includes('ad'))
}

해당 문제를 봤을 때 includes메소드가 떠올랐다!

includes는 해당 문자열이 포함될 경우 true, 아닌 경우 false를 반환한다.
해당 문제에서는 포함된 문자열을 제외한 나머지를 반환하는 것으로 false인 값을 반환하면 된다.

초반에는 map메소드를 사용했지만 그것보다 filter메소드를 사용하는게 적합하다고 생각했다.
filter메소드는 조건이 맞는 요소만 반환한다.

예전에는 변수를 선언 후 할당하고 반환했지만
이번에 간단하게 한줄로 코드를 작성했다!

💻 다른 사람이 작성한 코드

function solution(strArr) {

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

    return strArr;
}

다른 분들도 includes메소드를 사용해 푸셨다.

이분은 indexOf로 작성하셨는데 이 방법도 있다 싶어 가져와 봤다.
indexOf는 해당 문자열이 있을 경우 index를 반환하고 아닌 경우 -1를 반환한다.

indexOf

  • 배열에서 주어진 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고, 찾을 수 없는 경우 -1을 반환합니다.
    -출처 mdn
profile
💻 프론트엔드를 목표로 성장 중! (알아봤던 내용 등을 정리하기)

0개의 댓글