알고리즘

[프로그래머스 Lv.1] 폰켓몬 중복되는 배열 Set

furaha 2023. 9. 2. 11:17
반응형

1. 문제

 

2. 생각흐름

1) 주어진 배열에서 중복된 숫자를 추출하는 것을 먼저 해야겠다고 생각했다. 중복되는 값을 찾는 메소드를 검색

2) 답안이 배열의 갯수 나누기 2 만큼이 되거나 그것보다 넘으면 안된다. 그래서 if 문 제어가 필요하다

 

3. 풀이

function solution(nums) {
    
  const uniqueNumbers = new Set(nums);
  const uniqueCount = uniqueNumbers.size;
  const halfLength = nums.length / 2;

  if (uniqueCount <= halfLength) {
    return uniqueCount;
  } else {
    return halfLength;
  }

}

1. nums 배열에서 중복되는 숫자의 종류의 갯수 구하기

- new Set() 은 매개변수로 객체(배열)를 넣을 수 있으며 중복되는 값을 제거하는 역할을 한다

2. 배열을 2로 나눈 숫자를 구한다

3. 답의 조건은 배열을 2로 나눈 수 안에서 중복된 숫자를 걸러야 하기 때문에 if 문으로 uniqueCount 의 수가 더 크다면 halfLength 로 대체해서 답을 낸다.

 

4. 알게 된 점

Set 메소드의 용도를 알게 되었다

나중에 만약 회원의 정보 중에 이름이 겹치는 사람을 찾거나, 생일이 겹치는 사람을 찾을 때 유용할 것 같다

 

반응형