문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(my_string, num1, num2) {
let arr = [...my_string];
arr[num1] = my_string[num2];
arr[num2] = my_string[num1];
return arr.join('');
}
인덱스끼리 바꾸는 것을 동시에 할 수 있는 방법이 생각나지 않아서, 새로운 배열을 만들어 기존 배열의 값을 넣어줌으로써 문제를 해결했다.
그러나 내가 보기에도 제일 효율적인 방법은 아닐 것 같다는 생각이 들었다.
function solution(my_string, num1, num2) {
let arr = [...my_string];
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join('');
}
(다른 답을 보고 내가 다시 작성한 코드이다.)
구조 분해 할당을 이용하면 두 인덱스끼리 바꾸는 것을 동시에, 그것도 간단하게 할 수 있었다.
개념 뿐만 아니라 해당 개념을 응용을 하는 법도 꾸준히 익혀야겠다.