Just Do IT!
[프로그래머스 Level 0] 120810 - 120814 (JavaScript) 본문
728x90
반응형
120810. 나머지 구하기
문제 설명
정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
제한사항
0 < num1 ≤ 1000 < num2 ≤ 100
입출력 예
num1 num2 result 3 2 1 10 5 0
function solution(num1, num2) {
let answer = num1 % num2
return answer;
}
120811. 중앙값 구하기
문제 설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 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) {
var answer = 0;
// 배열을 정렬하기
array.sort(function(a, b) {
return a - b;
});
// 절반으로 나누어서 중앙 계산하기
answer = Math.floor(array.length / 2)
return array[answer]
}
120812. 최빈값 구하기
문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 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) {
// array의 길이가 1인 경우 그냥 그 값을 반환해준다
if (array.length === 1) return array[0];
const obj = [];
const answer = [];
// forEach() 반복문 : 배열에 있는 각 요소에 대해 오름차순으로 한번씩 실행하는 것
// obj에 값이 있으면 값을 만들고 1을 넣어주고, 값이 있으면 기존값에서 +1
array.forEach((n) => {
obj[n] = ++obj[n] || 1;
});
// 값과 그 값의 갯수를 정의한 obj를 array에 넣어주기
for (let key in obj) {
answer.push([key, obj[key]]);
}
// 갯수 기준으로 내림차순 정렬
// sort() : 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다
answer.sort((a, b) => b[1] - a[1]);
// 최빈값이 여러 개면 -1을 반환
if (answer[0][1] === answer[1][1]) return -1;
return Number(answer[0][0])
}
- 두 번째 풀이 (구글링해서 찾아본 풀이를 이용)
function solution(array) {
let map = new Map();
// Map 객체 초기화
for(let i = 0; i <= Math.max(...array); i++){
map.set(i, 0);
}
// array 배열의 원소값과 일치하는 Map 객체의 key를 증가시킨다
for(let i = 0; i < array.length; i++){
map.set(array[i], map.get(array[i]) + 1);
}
// Map 객체의 value만 모아서 배열로 만든다
let arr = Array.from(map.values());
// 최대값 산출
let max = Math.max(...arr);
// 최대값이 하나만 있다면 max, 여러 개 중복된다면 -1 출력
if(arr.indexOf(max) !== arr.lastIndexOf(max)){
return -1;
} else {
return arr.indexOf(max);
}
}
120813. 짝수는 싫어요
문제 설명
정수 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 = [];
for(let i = 1; i <= n; i++) {
if(i % 2 === 1) {
answer.push(i);
}
}
return answer;
}
120814. 피자 나눠 먹기 (1)
문제 설명
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
제한사항
1 ≤ n ≤ 100
입출력 예
n result 7 1 1 1 15 3
입출력 예 설명
입출력 예 #1
7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.
입출력 예 #2
1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.
입출력 예 #3
15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.
function solution(n) {
return n % 7 === 0 ? Math.floor(n / 7) : Math.floor(n / 7) + 1;
}
728x90
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 0] 120826. 특정 문자 제거하기 (JavaScript) (0) | 2022.11.20 |
---|---|
[프로그래머스 Level 0] 120821 - 120825 (JavaScript) (1) | 2022.11.16 |
[프로그래머스 Level 0] 120815 - 120820 (JavaScript) (0) | 2022.11.15 |
[프로그래머스 Level 0] 120805-120809 (JavaScript) (0) | 2022.11.11 |
[프로그래머스 Level 0] 120802-120804, 120583, 120585 (JavaScript) (0) | 2022.11.10 |