패션의 선도주자 청길이는 패션의 발전을 위해 패션쇼를 방문해 유니크한 아이템을 조사하기로 하였습니다. 청길이는 입장하는 사람들의 패션에서 처음 보는 아이템 만을 기록합니다. 이때 청길이의 기록에서 아래 규칙에 맞게 배열로 출력해 주세요.
입력
"1번: 4,2,3 2번: 3 3번: 2,3,4,1 4번: 2,3"
출력
[4, 2, 3, 1]
입력
"1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4"
출력
[3, 1, 4, 2]
function solution(s) {
let arr = s.split(" ").filter((_, idx) => !!(idx % 2));
arr = arr.join(",").split(",");
return [...new Set(arr)];
}
solution("1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4");
기술매니저님이 주신 문제
일단 입력값 저 문장 전체가 s라는 스트링으로 오는 거라서 어떻게 쟤를 나눠서 받지 고민하다가 split 메서드는 구분자로 나눠서 배열로 반환하니까 저걸 사용함
그 다음 filter 메서드로 val,idx를 받지만 val은 사용 안 할거라 _ 처리 해주고, idx가 홀수인 애들만 값을 가지고 있기 때문에 쟤네가 true인 애들만 arr에 담았다.
현재 arr 상태는
[ '3,1', '4', '2,1,3', '2,1,3,4' ]
이러함. 따라서 다시 join(",")으로 연결해서 string 만들어주고 다시 split(",") ,구분자로 나눠서 배열에 담아준다.
그리고 중복값을 없애기 위해 set 자료에 담아서 결과 값은 배열로 나와야 하기 때문에 스프레드 연산자를 통해 []에 담아 반환한다.