ALGORITHM/JavaScript

[코딩테스트] 문자열 섞기

1juyoung 2025. 6. 26. 14:23
문제 설명
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.

제한사항
- 1 ≤ str1의 길이 = str2의 길이 ≤ 10
   - str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.


입출력 예

srt1 srt2 result
"aaaaa" "bbbbb" "ababababab"

 

나의 코드 (메모리 & 시간 & 문제 링크와 같은 자세한 정보는 해당 링크를 통해 확인해 주세요! )

function solution(str1, str2) {
    var answer = '';
    const answerArr = [];
    const str1Arr = [...str1];
    const str2Arr = [...str2];
    
    for(i = 0; i < str2Arr.length; i++) {
        answerArr.push(str1Arr[i]);
        answerArr.push(str2Arr[i]);
    }
    
    return answerArr.join('');
}
  • str1, str2를 배열로 변환한 뒤 (...str1, ...str2)
  • 두 문자열의 각 문자를 번갈아 배열에 넣고 (push)
  • 마지막에 join으로 문자열로 결합하는 방식

 

다른 사람의 코드

1. map() 사용

function solution(str1, str2) {
    return [...str1].map((x, idx)=> x+str2[idx]).join("");
}

 

저번 문제와 마찬가지로 내 코드는 길고 반복적이다!
반복적인 부분은 어떤 식으로 정리해야 할지를 고민하면서 작성해야할 것 같다.

자바스크립트에서 제공하는 내장 함수들을 더 자주 사용하고 공부하면서, 손에 익혀야 할 것 같다.
무조건 for문부터 쓰는 습관에서 조금씩 벗어나서, 깔끔한 코드를 쓰도록...🙃