정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(numbers, num1, num2) {
return numbers.slice(num1, num2 + 1);
}
// numbers 배열 중 num1번째 인덱스부터 num2번째 인덱스까지
// 자른 정수 배열을 return 하라
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
function solution(age) {
age = age.toString();
// let ageArr = [...age];
let pro = ['a','b','c','d','e','f','g','h','i','j'];
let str = '';
for(const i of age){
str = str + pro[i];
}
return str;
}
문제를 보면 'a는 0, b는 1, c는 2, ..., j는 9입니다'라고 되어있다. 자세히 보면 배열의 요소와 배열의 인덱스라는 것을 알 수 있었다.
1. age는 숫자이기 때문에 toString()을 사용하여 문자열로 만든다.
2. a ~ j가 들어있는 배열을 만든다.
3. 빈 문자를 생성한다.
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
문제를 읽어봤을 때 응급도가 높은 순서대로 진료 순서를 정하면 emergency 배열을 내림차순으로 정렬을 해야 한다는 생각만 있었다. 하지만 내림차순으로 정렬했을 때 return 할 값의 배열도 내림차순이 정렬된다고 생각하였다.
20분간 고민해 봤지만 어떤 방식으로 진행해야 할지 몰라서 다른 사람의 풀이를 보았더니 바로 이해가 되었다.
function solution(emergency) {
let sorted = [...emergency].sort((a,b) => b - a);
let arr = emergency.map((i) => sorted.indexOf(i) + 1);
return arr;
console.log(emergency);
console.log(sorted);
console.log(arr);
}
첫번째 줄: emergency 원본 배열
두번째 줄: 내림차순 정렬한 배열
세번째 줄: map()을 이용하여 새로 담은 배열
코딩 테스트 문제 풀 때 어떠한 방식으로 접근해야 할지 아직 감을 잡지 못하겠다. 다른 사람 코드를 보고 내 걸로 만들기 위해 생각해 보았다.
let sorted = [...emergency].sort((a,b) => b - a);
let arr = [];
let ph;
for(let i of emergency){
ph = sorted.indexOf(i) + 1;
arr.push(ph);
}
return arr;
익숙한 for문으로 풀어보았다.
위에 풀이와 다른점이 있다면 push..?가 끝이다.
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
function solution(n) {
const num = [];
for(let i = 0; i <= n; i++){
if(n % i === 0){
num.push(i);
}
}
return num.length;
}
두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하는 문제이기 때문에 n의 약수의 개수를 구하면 될 것이라고 생각했다.
20을 예로 20 나눠 나머지가 0이 되는 것이면 다 약수이다.
20의 약수는 1,2,4,5,10,20로 6개이다.
순서쌍을 만들어서 return하는 문제였다면 만들어야 했지만 중요 요점은 순서쌍의 개수를 return하는 문제이기에 약수를 배열에 넣고 배열의 개수를 return 했다.