본문 바로가기

TIL/이전 풀이

[js] Programmers_Lv.0_인덱스 바꾸기

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문자열(my_string)과 정수(num1, num2) 두 개가 주어질 때, 문자열의 index(num1, num2)에 해당하는 문자열을 교체한 값을 반환하시오

 

아이디어

1. 먼저 각 문자를 상수로 저장한다.

2. 반복문을 돌려서 문자열을 완성한다. 이 때, num1 ,num2에 해당할 시, 다른 변수를 추가하는 if문을 작성한다.

 

구현(풀이)

function solution(my_string, num1, num2) {
    var answer = '';
    const first = my_string[num1] 
    const second = my_string[num2] 
    for (var i = 0; i< my_string.length; i++) {
        if (i === num1) {
            answer += second
        }
        else if (i === num2) {
            answer += first
        } 
        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('');
}

1. string.split()을 이용하여 문자열 배열 반환

2. 구조분해 할당을 이용하여 특정 위치에 문자열 값 변경

3. array.join()을 이용하여 배열을 문자열로 반환

 

참고문서

- mdn, array.join : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join