[부스트캠프 자가진단] 6번 함수 구현(javascript)

프린이·2021년 6월 4일
1

  • 제 코드는 최선의 방안은 아닙니다.
  • 단순히 기록용, 공유용이니 이 점 보실 때, 참고바랍니다!

🔗 문제 링크

https://blog.naver.com/boostcamp_official/221978031932

📙 풀이 과정

  1. 배열이 중복된 원소를 가지고 있는지 확인
  2. 중복된 원소가 없다면, [-1]반환
  3. 중복된 원소가 있다면,
    1) Set을 통해 중복을 제거해 원소값들이 한 번씩만 존재하게 세팅해 변수에 배열 저장
    2) 새로 생성된 배열의 원소들이 원래 배열에 몇 개가 있는지 확인
    3) 카운트가 2개 이상이면 그 카운트를 정답 배열에 넣음
    4) 정답 배열 반환

📝 작성한 코드

function solution(numbers){
    //중복제거한 배열
    var arr = [...new Set(numbers)];

    //중복제거했을 때 원래 배열과 길이 다르면 원래 배열에 중복 값 존재
    if(arr.length != numbers.length){
        var answer = [];
        for(var i = 0; i < arr.length; i++){
            var cnt = numbers.filter((a) => arr[i] == a).length;
            if(cnt > 1){
                answer.push(cnt);
            }
        }
        return answer;
    }

    // 중복값 존재하지 않을 시
    else{
        return [-1];
    }
};
profile
주니어 프론트엔드개발자

0개의 댓글