📕 문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
⭐ 제한사항
- 1 < my_string의 길이 < 100
- 0 ≤ num1, num2 < my_string의 길이
- my_string은 소문자로 이루어져 있습니다.
- num1 ≠ num2
💻 입출력 예
my_string | num1 | num2 | result |
"hello" | 1 | 2 | "hlelo" |
"I love you" | 3 | 6 | "Il veoyou" |
📚 입출력 예 설명
입출력 예 #1
- "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.
입출력 예 #2
- "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.
😊 나의 답변
function solution(my_string, num1, num2) {
let arr = [...my_string];
const [a, b] = [arr[num1], arr[num2]];
arr[num1] = b;
arr[num2] = a;
return arr.join('');
}
구조 분해 할당으로 arr[num1]의 값과 arr[num2]의 값을 변수에 담아주고, arr에서 해당하는 인덱스의 값을 변경해주었다.
join('')으로 배열을 문자열로 만들어 return 해주는 풀이였는데... 정답이긴 정답이지만...!
function solution(my_string, num1, num2) {
let arr = [...my_string];
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join('');
}
이렇게도 풀 수 있었다.
구조 분해 할당을 이렇게도 사용할 수 있구나, 하는 깨달음을 얻었다 👍
728x90
반응형
'프로그래머스 > Lv. 0 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스] Lv.0 암호 해독 / JS (0) | 2023.08.11 |
---|---|
[프로그래머스] Lv.0 대문자와 소문자 / JS (0) | 2023.08.11 |
[프로그래머스] Lv.0 한 번만 등장한 문자 / JS (0) | 2023.08.11 |
[프로그래머스] Lv.0 영어가 싫어요 / JS (0) | 2023.08.11 |
[프로그래머스] Lv.0 문자열 계산하기 / JS (0) | 2023.08.10 |