programmers

코딩 테스트 / 한 번만 등장한 문자, 잘라서 배열로 저장하기

이미사용 2023. 5. 30. 00:05
명언
-
728x90
반응형

 한 번만 등장한 문자

※풀이

1. [...s]를 사용하여 문자열 s를 배열로 변환합니다. 이렇게 하면 문자열의 각 문자가 배열의 요소로 들어갑니다.
2. filter() 메서드를 사용하여 배열의 각 요소 c에 대해 다음 조건을 검사합니다:
    ·s.match(new RegExp(c, 'g'))는 정규 표현식 c와 매치되는 문자열의 배열을 반환합니다.
    ·s.match(new RegExp(c, 'g')).length는 c와 매치되는 문자열의 개수를 반환합니다.
    ·s.match(new RegExp(c, 'g')).length == 1는 c와 매치되는 문자열의 개수가 1인 경우를 검사합니다.
3. 조건을 만족하는 요소들로 이루어진 새로운 배열이 반환됩니다.
4. sort() 메서드를 사용하여 반환된 배열을 알파벳 순서로 정렬합니다.
5. join('')을 사용하여 정렬된 배열의 요소들을 문자열로 결합하여 반환합니다.

 

 

filter()  JavaScript 배열 객체의 메서드 중 하나로, 배열의 각 요소를 조건에 따라 필터링하여 새로운 배열을 반환하는 기능을 제공합니다.
match()  JavaScript의 문자열 객체의 메서드로, 정규 표현식을 사용하여 문자열에서 패턴과 일치하는 부분을 찾는 기능을 제공합니다.
RegExp() JavaScript의 내장 생성자 함수로, 정규 표현식 객체를 생성하는 데 사용됩니다.
sort() JavaScript의 배열 객체의 메서드로, 배열의 요소를 정렬하는 기능을 제공합니다.

 

ex1)

{
    function solution(s) {
        return [...s].filter(c => s.match(new RegExp(c, 'g')).length == 1).sort().join('');
    }
    console.log(solution("abcabcadc"));
    //d
}

ex2)

{
    function solution(s) {
        return [...s].filter(c => s.match(new RegExp(c, 'g')).length == 1).sort().join('');
    }
    console.log(solution("abdc"));
    //abcd

}

 

잘라서 배열로 저장하기

※풀이

1. 빈 배열 result를 생성합니다. 나중에 나눈 부분 문자열들을 저장할 배열입니다.
2. for 반복문을 사용하여 인덱스 i를 0부터 my_str.length까지 n씩 증가시키면서 반복합니다.
3. my_str.slice(i, i+n)을 사용하여 문자열 my_str에서 인덱스 i부터 i+n-1까지의 부분 문자열을 추출합니다. slice() 메서드는 문자열의 일부분을 선택하여 반환합니다.
4. 추출한 부분 문자열을 result 배열에 추가합니다.
5. 반복이 끝나면 result 배열을 반환합니다.

 

slice() JavaScript의 문자열(String)이나 배열(Array) 객체의 메서드로, 해당 객체의 일부분을 선택하여 새로운 문자열이나 배열을 반환하는 기능을 제공합니다.

ex1)

{
    function solution(my_str, n) {
        let result = [];
        for (let i = 0; i < my_str.length; i += n) result.push(my_str.slice(i, i+n));
        return result;
    }
    console.log(solution("abc1Addfggg4556b", 6));
    //['abc1Ad', 'dfggg4', '556b']
}

ex2)

{
    function solution(my_str, n) {
        let result = [];
        for (let i = 0; i < my_str.length; i += n) result.push(my_str.slice(i, i+n));
        return result;
    }
    console.log(solution("abcdef123", 3));
    //['abc', 'def', '123']
}

 

 

 

출처:https://school.programmers.co.kr/