
function solution(my_string, num1, num2) {
var answer = '';
for(let i = 0; i < my_string.length; i++) {
if(i === num1) {
answer += my_string[num2];
} else if (i === num2) {
answer += my_string[num1];
} else {
answer += my_string[i]
}
}
return answer;
}
개노답 풀이 등장~!
그래서 오늘은 이쁘게 푼 다른 사람의 풀이를 분석하는 시간을 가진다.
function solution(my_string, num1, num2) {
my_string = my_string.split('');
[my_string[num1], my_string[num2]] = [my_string[num2], my_string[num1]];
return my_string.join('');
}
my_string 을 분리
-> my_string이 "hello" 라는 문자열이면, ["h", "e", "l", "l", "o"] 와 같은 형태로 변환
구조 분해 할당을 이용해서 my_string[num1] 자리에는 my_string[num2] 를 할당하고, my_string[num2]에는 my_string[num1]을 할당함.
-> [my_string[num1], my_string[num2]] = [my_string[num2], my_string[num1]]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
구조 분해 할당에 대한 설명이 나와있는 MDN 문서인데, 저렇게 코딩하면 my_string의 특정 인덱스에 특정 값을 할당 할 수 있음.
예를들어 [my_string[num1], my_string[num2]] = ["h", "i"] 라고 코딩하면 my_string[num1] 에는 문자열 "h" 가 할당되고, my_string[num2] 에는 "i" 가 할당됨.
my_string을 다시 문자열로 조립
