코딩테스트
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) : 문자열 수정 작업이 많이 일어나거나 빈번하게 수행될 때,
혹은 수정 작업의 횟수를 프로그램 설계 단계에서 알 수 없을 때 사용하는 것이 적합