CODE KATA #17

YoungToMaturity·2021년 2월 7일
0

CODE KATA 🧗‍♂️

목록 보기
17/37
post-thumbnail

중복 문자 제거

소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.
제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.

나의 풀이

            function solution(s){  
                let answer="";
                for(let x of s) {
                    if(answer.indexOf(x) === -1) answer += x;
                }
                return answer;
            }
            console.log(solution("ksekkset"));

정답 풀이

            function solution(s){  
                let answer="";
                for(let i=0; i<s.length; i++){
                    if(s.indexOf(s[i])===i) answer+=s[i];
                }
                return answer;
            }
            console.log(solution("ksekkset"));

중복 단어 제거

N개의 문자열이 입력되면 중복된 문자열은 제거하고 출력하는 프로그램을 작성하세요. 출력하는 문자열은 원래의 입력순서를 유지합니다.

나의 풀이

	   function solution(s){  
                let answer = [];
                for(let x of s) {
                    if(answer.indexOf(x) === -1) answer.push(x);
                }
                return answer;
            }
            let str=["good", "time", "good", "time", "student"];
            console.log(solution(str));

정답 풀이

            function solution(s){  
                let answer;
                answer=s.filter((v, i)=>{
                    if(s.indexOf(v)===i) return v;
                });

                
                return answer;
            }
            let str=["good", "time", "good", "time", "student"];
            console.log(solution(str));

Array.prototype.filter()

filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

정답 풀이에서는 s의 각 요소를 v로, 처리할 현재 요소의 indexi로 사용하여, s.indexOf(v)를 통해 s에서 v가 처음으로 등장하는 경우의 index와 현재 index가 같은 경우 answer에 포함되도록 하였고, 그에 따른 결과를 return하도록 하였다. 참고하자.

profile
iOS Developer

0개의 댓글