티스토리 뷰

https://school.programmers.co.kr/learn/courses/30/lessons/181942

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

📌문제 설명

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

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

 

 

📌나의 풀이

반복문을 통해 첫문째 문자열(str1)부터 0번째 문자를 answer변수에 넣고, 바로 다음에 두번째 문자열(str2)의 0번째 문자를 저장했다.

str1[0],str2[0],str1[1],str2[1],....,str1[i],str2[i]까지 반복하여 answer변수에 저장한다.

function solution(str1, str2) {
    var answer = '';

    for(let i=0; i<str1.length; i++){
        answer += str1[i]
        answer += str2[i]
    }

    return answer;
}
입력값 〉 "aaaaa", "bbbbb"
기댓값 〉 "ababababab"

 

기대값을 보면 문자가 잘 섞여서 출력된다.

 

 

📌다른 풀이 방법

1. map 사용

반복문 map을 통해 각 문자열의 같은 위치에 있는 문자를 순서대로 결합한 새로운 문자열을 반환합니다.

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

 

  1. [...str1]은 str1 문자열을 문자 단위로 분해하여 배열로 변환한다. ( 예를 들어, str1이 "abc"라면, [...str1]은 ['a', 'b', 'c']가 됨 )
  2. [...str1].map((x, idx) => x + str2[idx])은 배열의 각 문자 x와 해당 문자의 인덱스 idx를 사용하여, x에 str2의 같은 인덱스에 있는 문자 str2[idx]를 더해 새로운 배열을 만든다.
  3. join을 사용해 최종 결과 배열을 빈 문자열 ""로 연결하여 하나의 문자열로 만든다.

 

-> 첫번째 문자열을 문자 배열로 만들어서 두번째 문자열의 같은 인덱스에 있는 문자를 조인하는 방법으로 map을 사용하면 한 줄의 코드로 간단하게 작성할 수 있다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함