[Leetcode75] 1. Merge Strings Alternately

·

1 min read

[1] 문제

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.

두개의 string 값을 받은 뒤 하나하나씩 섞어서 merged string을 리턴해줘야 한다!

<example>

Input: word1 = "abc", word2 = "pqr"
Output: "apbqcr"
Input: word1 = "ab", word2 = "pqrs"
Output: "apbqrs"
Input: word1 = "abcd", word2 = "pq"
Output: "apbqcd"

[2] 풀이

function mergeAlternately(word1: string, word2: string): string {
    const longWord = word1.length >= word2.length? word1 : word2;
    const shortWordLength = word1.length >= word2.length? word2.length : word1.length;

    let result = '';
    for(let i = 0; i < shortWordLength; i++) {
        result += word1[i]
        result += word2[i]
    }
    result += longWord.substring(shortWordLength)

    return result
};
  1. 여기서는 word1과 word2중 뭐가 더 긴지를 몰라서 먼저 긴 문자열과 짧은 문자열의 길이를 따로 변수에 저장했다

  2. 짧은 문자열 길이만큼은 word1과 word2가 왔다갔다하면서 쓰여야 해서 그 길이만큼은 for문을 돌리며 word1의 글자와 word2의 글자를 하나씩 추가해준다 (항상 word1이 먼저여야한다)

더이상 중복되는 길이가 없으면 긴 문자열에서 남은 길이만큼 (substring을 이용) 바로 결과값에 더해준다.

✏️
Leetcode75 문제세트를 하루에 하나씩 푸는 것을 목표로 다시 기본적인 알고리즘과 자료구조 공부를 시작해봐야겠다 ㅜㅜ 오랜만에 하려니까 머리가 안돌아가요ㅜㅠㅠㅠ