1.대문자와 소문자
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
const answer = [];
for (let i = 0; i < my_string.length; i++) {
const c = my_string[i];
if (c.toLowerCase() === c) {
answer.push(c.toUpperCase());
} else {
answer.push(c.toLowerCase());
}
}
return answer.join('');
}
- 먼저, 빈 배열 answer를 선언합니다. 이 배열은 반전된 문자들을 저장하기 위한 용도로 사용됩니다.
- 그리고 for 루프를 사용하여 문자열을 순회합니다. c 변수에는 현재 순회 중인 문자가 할당됩니다.
- 루프 내부에서는 if 문을 사용하여 현재 문자가 소문자인지 대문자인지 확인합니다. toLowerCase() 메서드를 사용하여 현재 문자를 소문자로 변환한 결과와 원래 문자를 비교하여 소문자 여부를 확인합니다.
- 소문자인 경우에는 대문자로 변환하여 answer 배열에 추가합니다. 그렇지 않은 경우에는 소문자로 변환하여 answer 배열에 추가합니다.
- 순회가 끝나면 answer 배열의 요소들을 join('') 메서드를 사용하여 문자열로 결합하여 반환합니다
2.영어가 싫어요
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다.
문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
function solution(numbers) {
const num = {
'zero': 0,
'one': 1,
'two': 2,
'three': 3,
'four': 4,
'five': 5,
'six': 6,
'seven': 7,
'eight': 8,
'nine': 9
};
for (let [k, v] of Object.entries(num)) {
numbers = numbers.replace(new RegExp(k, 'g'), v);
}
return parseInt(numbers);
}
- num이라는 객체를 선언합니다.
- 이 객체는 단어와 해당하는 숫자의 매핑을 가지고 있습니다. 예를 들어, "zero"는 0으로 매핑되고, "one"은 1로 매핑됩니다.
- for ... of 문을 사용하여 num 객체의 키-값 쌍을 순회합니다. 루프 변수 k는 단어를 나타내고, v는 해당하는 숫자 값을 나타냅니다.
- numbers 문자열에서 replace 메서드를 사용하여 단어 k를 해당하는 숫자 v로 치환합니다. 이때 정규 표현식 new RegExp(k, 'g')을 사용하여 전역(g)으로 일치하는 모든 단어를 치환합니다.
-치환된 문자열을 반환하기 위해 numbers 변수를 업데이트합니다.
- 최종적으로 parseInt 함수를 사용하여 문자열을 정수로 변환한 후 반환합니다.
3.인덱스 바꾸기
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(my_string, num1, num2) {
const str_list = Array.from(my_string);
[str_list[num1], str_list[num2]] = [str_list[num2], str_list[num1]];
return str_list.join('');
}
- Array.from 함수를 사용하여 my_string을 문자열을 배열로 변환합니다. 이를 str_list 변수에 할당합니다.
- 배열의 인덱스 num1과 num2에 해당하는 요소를 교환하기 위해 배열 비구조화 할당(destructuring assignment)을 사용합니다.
- str_list[num1]과 str_list[num2]의 값을 서로 교환합니다.
- str_list 배열을 다시 문자열로 변환하기 위해 join 함수를 사용하여 배열 요소를 연결합니다.