중복 단어 제거

아기코딩단2·2022년 7월 30일
0

알고리즘

목록 보기
2/10

중복단어제거
N개의 문자열이 입력되면 중복된 문자열은 제거하고 출력하는 프로그램을 작성하세요.
출력하는 문자열은 원래의 입력순서를 유지합니다.
▣ 입력설명
첫 줄에 자연수 N이 주어진다.(3<=N<=30)
두 번째 줄부터 N개의 문자열이 주어진다. 문자열의 길이는 100을 넘지 않습니다.
▣ 출력설명
첫 줄부터 중복이 제거된 문자열을 차례로 출력한다.
▣ 입력예제 1
5
good
time
good
time
student
▣ 출력예제 1
good
time
student

<!--my solution-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과 - 섹션1 - 16 - 중복 단어 제거</title>
    </head>
    <body>
        <script>
            function solution(str) {
               let answer = [];
                for (let i = 0; i < str.length; i++) {
                    for (let j = i + 1; j < str.length; j++) {
                        if (str[i] === str[j]) {
                            answer.push(str[j]);
                        }
                    }
                } return answer;
            }
            const strs = ['good', 'food', 'good', 'food'];
            console.log(solution(strs));
        </script>
    </body>
</html>

나는 2중 for 문으로 풀었다.
그런데 선생님은
filter 함수를 사용해서 풀었다.
좀 더 공부해야겠다.


<!--teacher's solution-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){  
                let answer;
                //console.log(s.indexOf("time"));
                answer=s.filter(function(v, i){
                    return s.indexOf(v)===i;
                });
                return answer;
            }
            let str=["good", "time", "good", "time", "student"];
            console.log(solution(str));
        </script>
    </body>
</html>
profile
레거시 학살자

0개의 댓글