Algorithm/JavaScript
[basics] 중복 단어 제거
_sweep
2021. 12. 6. 00:01
자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
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를 사용해 해당 조건에 만족하는 문자열들을 추출한 후 공백을 추가한다.