문제 접근법
문자열이 담겨진 배열을 하나하나 본 뒤 문자열 ex와 부분일치가 있는 문자열이 있는지 확인하면
간단한 문제라서 쉽게 풀었다
- C# 문제풀이
using System;
public class Solution {
public string solution(string[] str_list, string ex) {
string answer = "";
for(int i = 0; i < str_list.Length; i++)
{
if(str_list[i].Contains(ex))
continue;
else
answer += str_list[i];
}
return answer;
}
}
- 문제 복기
문제 복귀 결과 성능적으로는 조금 아쉬운 부분이 존재했다.
C#에서 문자열은 'immutable(불변)'이기에 반복분 내 코드를 실행할 때마다
새 문자열을 계속 생성하게 된다
answer += str_list[i];
이 부분에서 메모리와 성능에 불리하게 작용된다.
권장하는 방법: StringBuilder 사용
using System;
using System.Text;
public class Solution {
public string solution(string[] str_list, string ex) {
StringBuilder sb = new StringBuilder();
foreach (string s in str_list)
{
if (s.Contains(ex))
continue;
sb.Append(s);
}
return sb.ToString();
}
}
이러면 반복해서 사용하더라도 성능 손해가 발생하지 않는다!


