코딩테스트 8일차
배열 자르기
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
예시)
numbers | num1 | num2 | result |
[1, 2, 3, 4, 5] | 1 | 3 | [2, 3, 4] |
[1, 3, 5] | 1 | 2 | [3, 5] |
function solution(numbers, num1, num2) {
var answer = numbers.slice(num1, num2 + 1);
return answer;
}
외계행성의 나이
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
예시)
age | result |
23 | "cd" |
51 | "fb" |
100 | "baa" |
function solution(age) {
var answer = '';
while (age > 0) {
var remainder = age % 10;
var alpha = String.fromCharCode(97 + remainder);
answer = alpha + answer;
age = Math.floor(age / 10);
}
return answer;
}
반복문을 사용하여 주어진 나이를 10으로 나눈 나머지를 계산하고, 해당 나머지를 String.fromCharCode 함수를 통해 알파벳으로 변환하여 answer 변수에 추가합니다. 그 후, 나이를 10으로 나눈 몫을 새로운 age로 설정하여 반복 작업을 진행합니다. 마지막으로 answer를 반환합니다.
해당 코드는 주어진 문제를 해결하는데 적절한 방법입니다. 입력된 나이에 대해 반복문을 사용하여 자릿수마다 알파벳으로 변환하여 결과를 생성합니다.
예를 들어, age가 23이라면, 첫 번째 반복에서 remainder는 3이 되고, 'd'가 answer에 추가됩니다. 두 번째 반복에서 remainder는 2가 되고, 'c'가 answer의 앞에 추가됩니다. 따라서 결과는 'cd'가 됩니다. 코드는 주어진 문제를 올바르게 해결하고 있습니다.
진료순서 정하기
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
예시)
emergency | result |
[3, 76, 24] | [3, 1, 2] |
[1, 2, 3, 4, 5, 6, 7] | [7, 6, 5, 4, 3, 2, 1] |
[30, 10, 23, 6, 100] | [2, 4, 3, 5, 1] |
function solution(emergency) {
let sorted = emergency.slice().sort((a,b)=>b-a);
return emergency.map(v=>sorted.indexOf(v)+1);
}
순서쌍의 개
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
예시)
n | result |
20 | 6 |
100 | 9 |
function solution(n) {
var answer = 0;
for (var i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
if (i === n / i) {
answer++;
} else {
answer += 2;
}
}
}
return answer;
}