코딩테스트 입문 0단계
문제1 나머지 구하기
정수 num1, num2가 매개변수로 주어질 때, 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 배열을 반환합니다