[알고리즘] 중복단어 제거


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

입력설명

첫 줄에 자연수 N이 주어진다(3<=N<=30)
두 번째 줄부터 N개의 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.

출력설명

첫 줄부터 중복이 제거된 문자열을 차례로 출력한다.

입력예제

['good', 'time', 'good', 'time', 'student']

출력예제

["good","time","student"]


문제풀이

스프레드 연산자의 set을 이용해서 쉽게 문제를 해결할 수 있다.
다만, 원래의 입력순서(배열의 인덱스)를 바꾸면 안되기 때문에 filter함수 안에 indexOf메소드를 인자로 사용해 문제를 푸는 2번째 방법이 더욱 깔끔한 것 같다.

function solution(s) {
  let answer;
  
  retrun asnwer;
  removeDuplicationedArr = [...new Set(s)];
  return removeDuplicationedArr;
}
console.log(solution(s));


다른 문제풀이

function solution(s) {
  let answer;
  answer = s.filter((item, index) => {
    if (s.indexOf(item) === index) {
      return true
    }
  });
  return answer;
}

좋은 웹페이지 즐겨찾기