ETC/알고리즘

2022/05/02 폰켓몬

괴발새발자 2022. 5. 2. 22:30

https://programmers.co.kr/learn/courses/30/lessons/1845

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

풀이

function solution(nums) {
    let maxPick = nums.length/2;
    let pickArr = [...new Set(nums)];
    return Math.min(maxPick, pickArr.length);
}

성능

테스트 1 〉	통과 (0.04ms, 30.1MB)
테스트 2 〉	통과 (0.04ms, 30.3MB)
테스트 3 〉	통과 (0.10ms, 30MB)
테스트 4 〉	통과 (0.04ms, 29.9MB)
테스트 5 〉	통과 (0.04ms, 29.9MB)
테스트 6 〉	통과 (0.11ms, 30MB)
테스트 7 〉	통과 (0.06ms, 30.2MB)
테스트 8 〉	통과 (0.11ms, 30.3MB)
테스트 9 〉	통과 (0.05ms, 29.9MB)
테스트 10 〉	통과 (0.05ms, 30.3MB)
테스트 11 〉	통과 (0.05ms, 30MB)
테스트 12 〉	통과 (0.11ms, 30.2MB)
테스트 13 〉	통과 (0.09ms, 30MB)
테스트 14 〉	통과 (0.11ms, 30.4MB)
테스트 15 〉	통과 (0.06ms, 30.1MB)
테스트 16 〉	통과 (0.55ms, 30.4MB)
테스트 17 〉	통과 (0.53ms, 30.2MB)
테스트 18 〉	통과 (0.36ms, 29.9MB)
테스트 19 〉	통과 (0.30ms, 30.1MB)
테스트 20 〉	통과 (0.26ms, 30MB)

참고

  • Set : set은 중복되는 요소를 없앰. set의 경우 size를 통해 길이를 알 수 있다. 
var myArray = ['value1', 'value2', 'value3'];

// Array를 Set으로 변환하기 위해서는 정규 Set 생성자 사용
var mySet = new Set(myArray);

mySet.has('value1'); // true 반환

// set을 Array로 변환하기 위해 전개 연산자 사용함.
console.log([...mySet]); // myArray와 정확히 같은 배열을 보여줌

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

 

Set - JavaScript | MDN

Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.

developer.mozilla.org