기초부터 시작하는 코딩/Programmers

Programmers 문제를 풀어봅시다. Day3

kebab00 2023. 5. 18. 21:42

728x90

1. 정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

- 정답은

function solution(num1, num2) {
    var answer = num1 % num2;
    return answer;
}

2. 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

- 정답은

function solution(array) {
    array.sort((a, b) => {
        return a - b;
    });
    
    return array[Math.floor(array.length / 2)];
}

 

 

3. 정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

-정답은

function solution(n) {
    var answer = [];
    for (let i = 0; i<=n; i++){
        if(i % 2 == 1){
            answer.push(i);
        }
    }
    return answer;
}

4. 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

- 정답은

function solution(array) {
    var answer = 0;
    array.sort(function(a,b){return a-b}) //오름차순
    var obj = {
        count : 1,
        value : 1
    } //객체 생성
    if (array.length === 1) { 
        return array[0] // 배열의 길이가 1이면 배열의 0번째를 반환
    } else {
        var count = 1; //카운트 변수 선언
    for (i=0; i < array.length; i++) {
        if (array[i] === array[i+1]) { 
            count += 1 // 같은 인자가 있으면 카운트 상승
        } else{
                if (obj.count === count) {
                    obj = {...obj, count : count, value : [obj.value, array[i]] }
                } // 변수와 기존 obj.count 가 같으면 배열로 변환해버리기
                else if (obj.count < count) {
                    obj = {...obj, value : array[i], count : count}
                } // 변수가 기존 obj.count 보다 크다면! 새 value와 count 넣어주기
                else {
                    obj = obj
                } // 아니면 그냥 obj 그대로 두기
                count = 1 // 변수 리셋
           }
        }
    }
    answer = typeof obj.value === 'object' ? -1 : obj.value
    // 배열이라면 최빈값이 여러개이고, number 타입이라면 최빈값이 유일하므로 typeof 로 배열을 찍으면 'object'가 나오는 걸로 삼항연산
    return answer;
}

- 끝!