본문 바로가기
Algorithm/JavaScript

[basics] 중복 단어 제거

by _sweep 2021. 12. 6.

 

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.

 

 

 

 

📋 문제

N개의 문자열이 입력되면 중복된 문자열은 제거하고 출력한다. 이때 출력하는 문자열은 원래의 입력 순서를 유지한다.

 

 

👉 입력

길이가 100을 넘지 않는 N개의 문자열이 주어진다. 각 문자열은 줄바꿈으로 구분된다.

 

 

👈 출력

첫번째 줄부터 중복이 제거된 문자열을 입력 순서대로 출력한다.

 

 

📝 풀이

 

<script>
    function solution(s) {
        let answer = [];
        for (const a of s) {
            if (answer.indexOf(a) === -1) answer.push(a);
        }
        return answer.join('\n');
    }
    let str = ["good", "time", "good", "time", "student"];
    console.log(solution(str));
</script>

 

입력된 문자열들을 순회하며 해당 문자열이 answer라는 배열에 없을 경우 answer에 push한다.

이후 배열 안의 요소들에 공백을 추가하여 출력한다.

 

<script>
    function solution(s) {
        let answer = s.filter((a, b) => s.indexOf(a) === b).join('\n');
        return answer;
    }
    let str = ["good", "time", "good", "time", "student"];
    console.log(solution(str));
</script>

 

위와 같은 방식이지만 이 방식은 for of 문과 if 문 대신 filter를 사용해 해당 조건에 만족하는 문자열들을 추출한 후 공백을 추가한다.

 

 

 

 

 

 

댓글