코딩테스트 15일차
영어가 싫어요
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
function solution(numbers) {
const numDict = {
zero: 0,
one: 1,
two: 2,
three: 3,
four: 4,
five: 5,
six: 6,
seven: 7,
eight: 8,
nine: 9
};
let answer = "";
let currentNumber = "";
for (let i = 0; i < numbers.length; i++) {
currentNumber += numbers[i];
if (numDict.hasOwnProperty(currentNumber)) {
answer += numDict[currentNumber];
currentNumber = "";
}
}
return parseInt(answer);
}
인덱스 바꾸기
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(my_string, num1, num2) {
let arr = my_string.split("");
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join("");
}
먼저 my_string을 문자 단위로 분할하기 위해 split 함수를 사용하여 배열로 변환합니다. 그 후, 비구조화 할당(destructuring assignment)을 사용하여 num1과 num2 인덱스에 해당하는 문자를 교환합니다. 배열 요소를 교환하기 위해 배열 해체 할당을 사용하였습니다. 마지막으로 join 함수를 사용하여 배열을 다시 문자열로 변환하여 반환합니다.
한 번만 등장한 문자
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
function solution(s) {
let charCount = {};
for (let i = 0; i < s.length; i++) {
const char = s[i];
if (charCount[char]) {
charCount[char]++;
} else {
charCount[char] = 1;
}
}
let uniqueChars = "";
for (const char in charCount) {
if (charCount[char] === 1) {
uniqueChars += char;
}
}
return uniqueChars.split("").sort().join("");
}
먼저 charCount라는 객체를 사용하여 각 문자가 등장한 횟수를 카운트합니다. 반복문을 통해 문자열 s를 순회하면서 charCount 객체에 각 문자의 등장 횟수를 저장합니다.
그 후, 두 번 이상 등장한 문자를 필터링하여 한 번만 등장하는 문자들을 uniqueChars 문자열에 추가합니다. 마지막으로 uniqueChars 문자열을 사전 순으로 정렬하여 반환합니다.
약수 구하기
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
function solution(n) {
var answer = [];
for (let i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
answer.push(i);
if (i !== n / i) {
answer.push(n / i);
}
}
}
return answer.sort((a, b) => a - b);
}
주어진 숫자 n의 약수를 찾기 위해 반복문을 사용합니다. i를 1부터 n의 제곱근까지 증가시키면서 n을 i로 나누어 나머지가 0인 경우 i는 n의 약수입니다. i를 answer 배열에 추가하고, i와 n / i가 같지 않은 경우에만 n / i도 answer 배열에 추가합니다.
마지막으로 answer 배열을 오름차순으로 정렬하여 반환합니다.