코딩테스트

25/02/25 | CodingTest 4 문자열 섞기

오늘도즐겨 2025. 2. 25. 15:27

 ❓ 문제 설명

 

길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는

문자열을 만들어 return 하는 solution 함수를 완성해 주세요.


 

❌ 제한사항

 

1 ≤ str1의 길이 = str2의 길이 ≤ 10

str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.


👀 입출력 예

 


💡 나의 풀이 1

 

처음엔 2중 for문이나, foreach문을 쓰면 안되나? 싶어서 쓴 코드 😥

ㅋㅋㅋㅋㅋ근데 이상하긴 하다 위에 foreach 1번 들어오고 아래는 다 돌 테니...

using System;

public class Solution {
      public static string solution(string str1, string str2)
        {
            string answer = "";            
            
            foreach (char c in str1)
            {
                answer += c;
                foreach (char d in str2)
                {
                    answer += d;
                }
            }          
            return answer;
        }
    }
}

😊실행 결과 1

 

당연하다... 그럼 어떻게 돌려야 맞지?

foreach문은 두가지 문자열을 쓰려면 무조건 2중 foreach를 써야하니...

 


💡 나의 풀이2

 

2가지 문자열에 같은 번째 문자를 쓰려면 한줄에 다 써야하니 for문이 맞다.

using System;

public class Solution {
    public string solution(string str1, string str2) {
            
            string answer = "";
            
            for (int i = 0; i < str1.Length; i++)
            {
                answer += str1[i] + str2[i].ToString();
            }
        
            return answer;
    }
}

😊실행 결과 2


👀 다른사람 풀이

스트링빌더를 활용해 문자열 공간을 만들고, Append를 활용해 추가 해줌👍🏻

using System;
using System.Text;

public class Solution {
    public string solution(string str1, string str2) {
        string answer = "";
        StringBuilder Sb = new StringBuilder();

        for(int i = 0; i < str1.Length; i++)
        {
            Sb.Append(str1[i]);
            Sb.Append(str2[i]);
        }

        answer = Sb.ToString();

        return answer;
    }
}

 

string + string : 문자열 수정 작업이 적게 일어나거나 자주 수행하지 않는 로직에서 사용할 때 적합

StringBuilder.Append(string) : 문자열 수정 작업이 많이 일어나거나 빈번하게 수행될 때,

                            혹은 수정 작업의 횟수를 프로그램 설계 단계에서 알 수 없을 때 사용하는 것이 적합