[프로그래머스] Lv.1 폰켓몬

Miro·2022년 8월 8일
0
post-thumbnail

프로그래머스 Lv.1 폰켓몬

문제, 제한 사항

입출력

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function solution(nums) {
    let answer = 0;
    let num_div = nums.length/2;
    let num_copy = nums.slice(0);
    
    for(let i = 0; i < num_copy.length; i++) {
        for(let j = i+1; j < num_copy.length; j++) {
            if(num_copy[i] === num_copy[j]) {
                num_copy.splice(j, 1);
                j--;
            }
        }
    }
    
    if(num_copy.length > num_div) {
        answer = num_div;
    }else {
        answer = num_copy.length;
    }
    
    return answer;
}
cs

nums의 길이를 2로 나눈 값을 num_div에 할당하고, nums를 복사한 배열을 num_copy에 할당한다.

이중반복문을 사용하여 바깥쪽 반복문은 i가 0부터 num_copy의 길이까지, 안쪽 반복문은 ji+1부터 num_copy의 길이까지 반복한다.

만약 num.copy[i]num_copy[j]의 값이 같다면 num_copy[j]splice를 사용하여 배열에서 제외하고 j를 1 감소한다.

반복문 종료후 만약 num_copy의 길이가 num_div의 값보다 크다면 answernum_div값을 할당한다.

그렇지 않다면 answernum_copy의 길이값을 할당한다.

profile
프론트엔드 개발자(진)

0개의 댓글