“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
코딩테스트 입문_사칙연산, 배열, 수학
1. 나머지 구하기
문제 설명
정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
제한 사항
- 0 < num1 ≤ 100
- 0 < num2 ≤ 100
입출력 예
num1 | num2 | result |
3 | 2 | 1 |
10 | 5 | 0 |
입출력 예 설명
- num1이 3, num2가 2이므로 3을 2로 나눈 나머지 1을 return 합니다.
- num1이 10, num2가 5이므로 10을 5로 나눈 나머지 0을 return 합니다.
풀이
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 |
입출력 예 설명
- 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.
풀이
function solution(array) {
array.sort(function(a,b){
return a-b;
})
var middleIndex = Math.floor(array.length / 2);
return array[middleIndex];
}
*sort 함수 내부에서 이 메소드를 사용하여 배열을 오름차순으로 정렬합니다.
비교 함수는 두 숫자를 인자로 받아 뺄셈 연산을 통해 오름차순 정렬을 수행하여 작은 순서대로 배열을 정렬합니다.
중앙 인덱스를 계산하기 위해서는
배열의 길이를 2로 나누고
소수점 이하를 버림합니다.
중앙 인덱스를 사용해 정렬된 배열에서 중앙값을 찾아 반환하면 됩니다.
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 |
입출력 예 설명
- [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
- [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
- [1]에는 1만 있으므로 최빈값은 1입니다.
풀이
function solution(array) {
var counts = {};
var maxCount = 0;
var mode = [];
for(var i = 0; i<array.length; i++){
var num = array[i];
counts[num] = (counts[num] || 0) + 1;
if(counts[num] > maxCount){
maxCount = counts[num];
mode = [num];
} else if (counts[num] === maxCount){
mode.push(num);
}
}
return mode.length > 1 ? -1 : mode[0];
}
maxCount 변수를 사용해 가장 큰 빈도를 추적하고 mode배열을 사용해 최빈값들을 저장합니다.
배열을 순회하면서 빈도를 갱신하면서 최빈값을 추적합니다.
mode 배열의 길이가 1보다 크면 최빈값이 여러개이므로 -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] |
입출력 예 설명
- 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.
- 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다.
풀이
function solution(n) {
var answer = [];
for(var i=1; i<=n; i++){
if(i%2 !== 0){
answer.push(i);
}
}
return answer;
}