Bomb Kirby Running

코딩 테스트 챌린지

코딩테스트 3

^. ̫ .^ 2023. 5. 20. 23:10

728x90

코딩테스트 입문 0단계

문제1 나머지 구하기

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

 

제한사항

  • 0 < num1 ≤ 100
  • 0 < num2 ≤ 100

입출력 예

num1  num2  result
3 2 1
10 5 0
function solution(num1, num2) {
    var answer = num1 % num2;
    return answer;
}

%로 나머지를 구해줍니다.

 

문제2 중앙값 구하기

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

 

제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

입출력 예

array result
[1, 2, 7, 10, 11] 7
[9, -1, 0] 0
function solution(array) {

  array.sort(function (a, b) {
    return a - b;
  });
  
  var midIndex = Math.floor(array.length / 2);

  return array[midIndex];
}

sort() 함수를 사용하여 배열을 정렬하고, Math.floor() 함수를 사용하여 중앙 인덱스를 계산합니다. 그리고 해당 인덱스에 위치한 값을 중앙값으로 반환합니다

 

문제3 최빈값 구하기

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

 

제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

입출력 예

array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1]
1
function solution(array) {
  var count = {}; 

  for (var i = 0; i < array.length; i++) {
    var num = array[i];
    if (count[num] === undefined) {
      count[num] = 1;
    } else {
      count[num]++;
    }
  }

  var mode = -1; 
  var maxCount = 0; 

  for (var key in count) {
    if (count.hasOwnProperty(key)) {
      if (count[key] > maxCount) {
        mode = parseInt(key);
        maxCount = count[key];
      } else if (count[key] === maxCount) {
        mode = -1;
      }
    }
  }

  return mode;
}

우선 빈도수를 저장할 빈 객체 count를 생성합니다

배열을 순회하면서 각 숫자의 빈도수를 계산합니다

배열의 각 숫자를 확인하고, 해당 숫자가 count 객체에 이미 존재하는지 확인합니다

만약 존재하지 않는다면, 해당 숫자를 count 객체에 추가하고 빈도수를 1로 설정합니다

이미 존재한다면, 해당 숫자의 빈도수를 1 증가시킵니다

최빈값을 찾기 위해 count 객체를 순회합니다

객체의 각 속성을 확인하면서 현재 최빈값과 비교합니다

빈도수가 현재 최빈값보다 크다면, 해당 숫자를 최빈값으로 설정하고 빈도수를 갱신합니다

빈도수가 현재 최빈값과 동일하다면, 최빈값이 여러 개인 경우이므로 -1을 반환합니다

최빈값을 반환합니다

 

문제4 짝수는 싫어요

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

제한사항

  • 1 ≤ n ≤ 100

입출력 예

n result
10 [1, 3, 5, 7, 9]
15 [1, 3, 5, 7, 9, 11, 13, 15]
function solution(n) {
    var answer = [];
    let cnt = 1;
    while(cnt <= n) {
        if(cnt % 2 === 1) {
            answer.push(cnt);
        }
        cnt = cnt + 1;
    }
    return answer;
}

변수 answer를 빈 배열로 초기화합니다

변수 cnt를 1로 초기화합니다

cnt가 주어진 숫자 n보다 작거나 같은 동안 반복합니다

조건문 if (cnt % 2 === 1)을 사용하여 cnt가 홀수인지 확인합니다

홀수라면, answer 배열에 cnt를 추가합니다

cnt 값을 1 증가시킵니다

최종적으로 구성된 answer 배열을 반환합니다