나의 풀이
function solution(nums) {
let arr = []
for(i=0; i<nums.length; i++){
arr.push(nums[i])
const set = new Set(arr)
arr = [...set]
if(arr.length === nums.length / 2){
break;
}
}
return arr.length;
}
처음엔 배열을 만들어서 includes로 nums의 중복된 값을 제거하는 방식으로 return 했더니 몇개가 통과되지 않아, new Set으로 중복된 값을 제거 후 다시 배열에 담는 식을 작성해서 모든 테스트 케이스에는 통과했다.
베스트 풀이
function solution(nums) {
const max = nums.length / 2;
const arr = [...new Set(nums)];
return arr.length > max ? max : arr.length
}
간결하게 중복된 값을 제거하고, nums를 반으로 나눈 값을 대조시키는 방법도 있다는걸 알게되었다
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 실패율 (0) | 2022.07.29 |
---|---|
[프로그래머스] 모의고사 (0) | 2022.07.29 |
[프로그래머스] 소수 만들기 (0) | 2022.07.28 |
[프로그래머스] 오픈채팅방 (0) | 2022.07.28 |
[프로그래머스] 문자열 압축 (0) | 2022.07.27 |