Just Do IT!
[프로그래머스 Level 0] 120895. 인덱스 바꾸기 (JavaScript) 본문
728x90
문제 설명
문자열 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 | "I l veoyou" |
입출력 예 설명
입출력 예 #1
- "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.
입출력 예 #2
- "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.
function solution(my_string, num1, num2) {
// num1과 num2 숫자를 바꾸면 된다
// splice: 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경
// 원본 배열을 수정하는 것
// splice(start, deleteCount, item1)
// start: 배열 변경 시작할 인덱스
// deleteCount : 삭제할 요소의 수
// item1 : 배열에 추가할 요소
// => num1 위치에서 하나 삭제하고 num2를 넣어준다
// num2도 마찬가지
const result = [...my_string];
result.splice(num1, 1, my_string[num2]);
result.splice(num2, 1, my_string[num1]);
return result.join("");
}
다른 사람 풀이 (splice 없이 임시 변수 만들어서 자리를 바꾸기 → C 배울때 배웠던 건데 까먹었음...)
function solution(my_string, num1, num2) {
const arr = my_string.split('');
const temp = arr[num1];
arr[num1] = arr[num2];
arr[num2] = temp;
return arr.join('');
}
728x90
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 0] 120848. 팩토리얼 (JavaScript) (0) | 2023.01.14 |
---|---|
[프로그래머스 Level 0] 120904. 숫자 찾기 (JavaScript) (0) | 2023.01.13 |
[프로그래머스 Level 0] 120834. 외계행성의 나이 (JavaScript) (1) | 2023.01.11 |
[프로그래머스 Level 0] 120862. 최댓값 만들기 (2) (0) | 2023.01.10 |
[프로그래머스 Level 0] 120844. 배열 회전시키기 (JavaScript) (0) | 2023.01.05 |