문제

You are given two strings word1 and word2. Merge the strings by adding letters in alternating order, starting with word1. If a string is longer than the other, append the additional letters onto the end of the merged string.

Return the merged string.

https://leetcode.com/problems/merge-strings-alternately/

 

예시

word1부터 번갈아가면서 string을 합쳐주면 된다. 이때, 더이상 번갈아 합칠 수 없으면, 긴 string의 나머지 부분은 그대로 더해진다.


코드

/**
 * @param {string} word1
 * @param {string} word2
 * @return {string}
 */
var mergeAlternately = function(word1, word2) {
    let words = "";

    const minLen = Math.min(word1.length, word2.length);

    // minLen 만큼은 번갈아 가면서
    for(let i = 0; i < minLen; i++){
        words += word1[i] + word2[i];
    }

    // 나머지 긴 string은 붙이기
    words += word1.length > word2.length ? word1.slice(minLen) : word2.slice(minLen);

    return words;

};

word1과 word2 중 짧은 길이만큼 번갈아서 더해주었다.

그 후, word1과 word2 중 더 긴 길이를 가진 string의 남은 부분을 더해주었다.

Array.prototype.slice() 를 사용하면 배열의 원하는 인덱스부터 끝까지 자를 수 있다.

 

728x90

+ Recent posts