[프로그래머스] Lv.0 인덱스 바꾸기 JavaScript

Janet·2023년 4월 10일
0

Algorithm

목록 보기
129/314

문제 설명

문자열 my_string과 정수 num1num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 < my_string의 길이 < 100
  • 0 ≤ num1num2 < my_string의 길이
  • my_string은 소문자로 이루어져 있습니다.
  • num1 ≠ num2

입출력 예

my_stringnum1num2result
"hello"12"hlelo"
"I love you"36"I l veoyou"

입출력 예 설명

입출력 예 #1

  • "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.

입출력 예 #2

  • "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.

문제풀이

💡 문제풀이 과정

  • 답안 1번: my_string을 배열 형태로 복사한다. let arr = […my_string]; arr[num1]arr[num2]str1, str2 변수에 각각 담는다. arrsplice() 메소드를 활용하여 배열의 특정 부분을 삭제하고 동시에 원하는 내용을 추가할 수 있다. 다음 예제 참고 ⬇️
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("");
}
profile
😸

0개의 댓글