공 던지기
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers
와 정수 K
가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
function solution(numbers, k) {
let idx = 0;
if(k === 1) {
return numbers[idx];
}
for(let i = 2; i <= k; i++) {
idx += 2;
if(idx >= numbers.length) {
idx = idx % numbers.length;
}
}
return numbers[idx];
}
배열 회전시키기
정수가 담긴 배열 numbers
와 문자열 direction
가 매개변수로 주어집니다. 배열 numbers
의 원소를 direction
방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
function solution(numbers, direction) {
let answer = [];
if(direction === 'left') {
for(let i = 0; i < numbers.length; i++) {
if(i === numbers.length - 1) {
answer[i] = numbers[0];
} else {
answer[i] = numbers[i + 1];
}
}
} else if(direction === 'right'){
for(let i = 0; i < numbers.length; i++) {
if(i === 0) {
answer[i] = numbers[numbers.length - 1];
} else {
answer[i] = numbers[i - 1];
}
}
}
return answer;
}
주사위의 개수
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box
와 주사위 모서리의 길이 정수 n
이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
function solution(box, n) {
return Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n);
}
합성수 찾기
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n
이 매개변수로 주어질 때 n
이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
function solution(n) {
let answer = 0;
let cnt = 0;
if(n >= 4) {
for(let i = 4; i <= n; i++) {
cnt = 0;
for(let j = 1; j <= Math.sqrt(i); j++){
if(j * j === i) cnt += 1;
if(i % j === 0) cnt += 2;
}
if(cnt >= 3) answer += 1;
}
}
return answer;
}
최댓값 만들기 (1)
정수 배열 numbers
가 매개변수로 주어집니다. numbers
의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) {
numbers.sort((x, y) => y - x);
return numbers[0] * numbers[1];
}
팩토리얼
i
팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
function solution(n) {
const facto = (x) => x <= 1 ? 1 : x * facto(x - 1);
for(let i = 0; i <= 10; i++) {
if(facto(i) <= n && facto(i + 1) > n) {
return i;
}
}
}
'코딩테스트' 카테고리의 다른 글
뇌주름 살리기 - 8 (0) | 2025.01.15 |
---|---|
뇌주름 살리기 - 7 (0) | 2025.01.14 |
뇌주름 살리기 - 5 (0) | 2025.01.12 |
뇌주름 살리기 - 4 (0) | 2025.01.11 |
뇌주름 살리기 - 3 (0) | 2025.01.10 |