문자열 my_string
과 정수 num1
, num2
가 매개변수로 주어질 때, my_string
에서 인덱스 num1
과 인덱스 num2
에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
my_string
의 길이 < 100num1
, num2
< my_string
의 길이my_string
은 소문자로 이루어져 있습니다.num1
≠ num2
my_string | num1 | num2 | result |
---|---|---|---|
"hello" | 1 | 2 | "hlelo" |
"I love you" | 3 | 6 | "I l veoyou" |
입출력 예 #1
입출력 예 #2
💡 문제풀이 과정
- 답안 1번:
my_string
을 배열 형태로 복사한다.let arr = […my_string];
arr[num1]
과arr[num2]
는str1
,str2
변수에 각각 담는다.arr
에splice()
메소드를 활용하여 배열의 특정 부분을 삭제하고 동시에 원하는 내용을 추가할 수 있다. 다음 예제 참고 ⬇️
array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) // start: 배열의 변경을 시작할 인덱스 // deleteCount: 배열에서 제거할 요소의 수 // item1, item2: 배열에 추가할 요소. 아무 요소도 지정하지 않으면 요소를 제거하기만 함. let my_string = 'hello' let num1 = 1, let num2 = 2 let arr = [...my_string]; // ['h', 'e', 'l', 'l', 'o'] let str1 = arr[num1]; // 'e' let str2 = arr[num2]; // 'l' arr.splice(num1, 1, str2); console.log(arr); // ['h', 'l', 'l', 'l', 'o'] arr.splice(num2, 1, str1); console.log(arr); // ['h', 'l', 'e', 'l', 'o'] arr.join(""); // 'hlelo'
- 답안 2번: 주어진 문자열
my_string
을 배열 형태로 복사하여 변수arr
에 담는다.[arr[num1], [num2]] = [arr[num2], arr[num1]];
하면arr
의 인덱스는 바뀌게 되고arr.join(””);
하여 문자열로 리턴한다.
✅ 답안 #1
function solution(my_string, num1, num2) {
let arr = [...my_string];
let str1 = arr[num1];
let str2 = arr[num2];
arr.splice(num1, 1, str2);
arr.splice(num2, 1, str1);
return arr.join("");
}
✅ 답안 #2
function solution(my_string, num1, num2) {
let arr = [...my_string];
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join("");
}