Algorism

중복단어 제거

자라나라나무나무나 2022. 7. 12. 13:46
중복단어를 제거해주는 함수를 구현하시오.
입력값
["john", "alice", "alice"], 
["Hello", "hello", "HELLO", "hello"],   
["kiwi", "banana", "mango", "kiwi", "banana"]

오답

function answer(arr) {

    let new_arr = [];

    let set = new Set(arr);

    new_arr = Object.keys(set);
    
    return new_arr;
};

let input = [
    ["john", "alice", "alice"],
    ["Hello", "hello", "HELLO", "hello"],
    ["kiwi", "banana", "mango", "kiwi", "banana"],
];  

for(let i = 0; i < input.length; i++) {
    process.stdout.write(`#${i + 1}`);
    console.log(answer(input[i]));
}

 


정답1

function answer(arr) {

    let new_arr = [];

    new Set(arr).forEach(function (item) {
        new_arr.push(item);
    });
    
    return new_arr;
};

let input = [
    ["john", "alice", "alice"],
    ["Hello", "hello", "HELLO", "hello"],
    ["kiwi", "banana", "mango", "kiwi", "banana"],
];  

for(let i = 0; i < input.length; i++) {
    process.stdout.write(`#${i + 1}`);
    console.log(answer(input[i]));
}

new Set 생성자를 이용하여 배열의 중복을 없애주고,

forEach를 통하여 콜백함수로 자기자신을 호출 한 뒤에

push를 통하여 new_arr에 넣어주는 방식

 

정답2

function answer(arr) {

    let new_arr = [];

    new_arr = Array.from(new Set(arr));
    
    return new_arr;
};

let input = [
    ["john", "alice", "alice"],
    ["Hello", "hello", "HELLO", "hello"],
    ["kiwi", "banana", "mango", "kiwi", "banana"],
];  

for(let i = 0; i < input.length; i++) {
    process.stdout.write(`#${i + 1}`);
    console.log(answer(input[i]));
}