
초기 코딩
function solution(nums) {
var answer = 0;
return answer;
}
첫 아이디어
nums[0]과 nums[1]를 비교하고 다르다면
중복되지 않은 수를 넣어놓은 picknum도 비교해서 이 역시 다르면
picknum에 집어넣고 나중에 길이를 재려고했음
나의 코드
function solution(nums) {
var answer = 0;
let max = nums.length/2; // 다 다를때 맥스
let picknum = []; //뽑은 수 들어감
let count = 0;
let pickcount = 1;
picknum[0] = nums[0];
for(let i = 0 ; i < nums.length ; i++){
for(let j = i+1; j < nums.length ; j++){
if(nums[i]!==nums[j]){
for(let k =0 ; k < picknum.length ; k++){
if(nums[j] !== picknum[k]){ //다 다르면
count +=1;
}
if(count===picknum.length){ //할당
picknum[picknum.length] = nums[j];
pickcount +=1;
count = 0;
}
}
}
}
}
answer = pickcount;
return answer;
}
너무 복잡해지다보니까 이건 아닌거 같아서 다른 아이디어를 내보기로 함
다음 아이디어
중복되지 않은 수를 세는 함수를 찾아보니 있었다.
함수를 잘 활용하자..
전체 nums에서 중복되지 않은것을 센후에 half=nums길이/2 보다 많으면 half리턴
적으면 그값리턴을 하기로 했다
최종 코드
function solution(nums) {
var answer = 0;
let notsame = [...new Set(nums)].length;
let half = nums.length/2;
if(notsame > half){
answer = half;
}
else{
answer = notsame;
}
return answer;
}
중복 제거법
1. new Set(배열)
Set객체로서 배열의 중복값 제거함 이거로 나온 값은 배열이 아님
Set객체를 배열로 변환하기
1. [...Set객체]
2. Array.from(Set객체)
3. forEach 이용하기 <- 이건 아직 이해가 안간다
참조 : https://hianna.tistory.com/422
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
x만큼 간격이 있는 n개의 숫자 (0) | 2021.10.18 |
---|---|
직사각형 별찍기 (0) | 2021.10.17 |
짝수와 홀수 (0) | 2021.10.17 |
없는 숫자 더하기 (0) | 2021.10.07 |
시작 (0) | 2021.10.07 |