코딩테스트 12일차
모음 제거
모음 제거영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
var vowels = ['a', 'e', 'i', 'o', 'u'];
var result = '';
for (var i = 0; i < my_string.length; i++) {
var char = my_string[i];
// 문자열에서 모음을 제외한 문자를 결과 문자열에 추가합니다.
if (!vowels.includes(char.toLowerCase())) {
result += char;
}
}
return result;
}
변수 vowels에 모음을 나타내는 알파벳들을 배열로 저장합니다.
변수 result를 빈 문자열로 초기화합니다. 이 변수는 모음을 제외한 문자들을 저장할 것입니다.
주어진 문자열 my_string을 반복하여 각 문자를 검사합니다.
변수 char에 현재 문자를 저장합니다.
char이 모음인지 검사합니다. 모음은 배열 vowels에 포함된 알파벳입니다.
char를 소문자로 변환한 결과가 vowels 배열에 포함되어 있지 않다면, 모음이 아니므로 result에 추가합니다.
반복이 끝나면 최종적으로 형성된 result를 반환합니다.
문자열 정렬하기 (1)
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
function solution(my_string) {
var numbers = [];
// 문자열에서 숫자만 추출하여 numbers 배열에 저장합니다.
for (var i = 0; i < my_string.length; i++) {
var char = my_string[i];
// 현재 문자가 숫자인지 검사합니다.
if (!isNaN(parseInt(char))) {
numbers.push(parseInt(char));
}
}
// 오름차순으로 정렬합니다.
numbers.sort(function(a, b) {
return a - b;
});
return numbers;
}
빈 배열 numbers를 생성합니다. 이 배열은 추출한 숫자들을 저장할 것입니다.
주어진 문자열 my_string을 반복하여 각 문자를 검사합니다.
변수 char에 현재 문자를 저장합니다.
현재 문자가 숫자인지 검사합니다. 문자열을 숫자로 변환하여 검사하기 위해 isNaN 함수와 parseInt 함수를 사용합니다.
parseInt(char)의 결과가 NaN이 아니라면, 현재 문자는 숫자입니다.
숫자로 변환한 결과를 numbers 배열에 추가합니다.
반복이 끝나면 numbers 배열을 오름차순으로 정렬합니다.
정렬된 numbers 배열을 반환합니다.
숨어있는 숫자의 덧셈 (1)
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
const answer = my_string.replace(/[^0-9]/g, '')
.split('')
.reduce((acc, curr) => acc + Number(curr), 0);
return answer;
}
소인수분해
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
function solution(n) {
var answer = [];
var divisor = 2;
while (n !== 1) {
if (n % divisor === 0) {
answer.push(divisor);
n /= divisor;
} else {
divisor++;
}
}
answer = [...new Set(answer)];
return answer;
}
빈 배열 answer를 선언합니다. 이 배열은 소인수를 담을 것입니다.
변수 divisor를 2로 초기화합니다. 이 변수는 현재 소인수를 나누는 값입니다.
n이 1이 될 때까지 반복합니다.
만약 n이 divisor로 나누어 떨어진다면 (n % divisor === 0), divisor는 n의 소인수입니다.
divisor를 answer 배열에 추가합니다.
n을 divisor로 나눕니다. (n /= divisor)
그렇지 않은 경우, divisor를 1씩 증가시킵니다.
반복이 끝나면, answer 배열에는 n의 소인수들이 오름차순으로 담겨있습니다.
중복된 소인수를 제거하기 위해 answer 배열을 Set 객체로 변환한 뒤 다시 배열로 변환합니다.
최종적으로 구해진 소인수들이 오름차순으로 정렬되어 반환됩니다.