리트코드 알고리즘/리트코드 easy

(간단한 코드)리트코드 1768. Merge Strings Alternately

문학적 딥러닝 2024. 12. 3. 23:17

두개의 문자열이 주어지고, 이를 순서대로 섞는 코드이다. 

 

여기서 주의해야 할 점은 두 문자열의 길이가 같지 않아, 간단한 for문으로는 해결 할 수 없다는 점일 것이다. 

 

class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        l1, l2 = len(word1), len(word2)
        if l1 > l2:
            n = l1-l2
            word2 += ' '*n
        elif l2 > l1:
            n = l2-l1
            word1 += ' '*n
        
        ans = ''

        for i in range(len(word1)):
            ans += word1[i]
            ans += word2[i]
        
        res = ans.replace(' ', '')
        
        return res

 

이게 내가 생각한 답이었는데, 조금 길지만 그만큼 이해하기 쉽다. 

 

(우선 ans는 answer의 줄임말이고, res는 result의 줄임말이다.)

 

l1, l2 = len(word1), len(word2)
    if l1 > l2:
        n = l1-l2
        word2 += ' '*n
    elif l2 > l1:
        n = l2-l1
        word1 += ' '*n

 

우선 두 문자열의 길이를 비교하므로서, 어느것이 더 긴 문자열인지 판별하고, 짧은 문자열에 부족한 부분을 (공백)으로 매꾸어준다. 

 

매꾸어준 다음에는 그냥 for문을 사용해서 순서대로 하나씩 꺼내면 되는 일이다. 

 

다만 이렇게 하면 공백도 그냥 하나의 문자열로 들어가므로, 필요한게 replace() 이다.

 

res = ans.replace(' ', '')는 --> ans에서 공백(' ')을 공백없음('')으로 대치하겠다 라는 의미다.

 

그렇게 끝나면

 

그냥 무난한 결과가 나타났다.