📌프로그래머스 181911
💡풀이
- 이차원 정수 배열 parts는 [x,2] 크기를 가진다.
- my_strings크기와 parts.GetLength(0)의 크기는 같다.
public string 부분문자열이어붙여문자열만들기(string[] my_strings, int[,] parts)
{
string answer = "";
for(int i = 0; i < parts.GetLength(0); i++)
for (int j = parts[i, 0]; j < parts[i, 1]; j++)
answer += my_strings[i][j];
return answer;
}
일단 string을 += 했다는 게 너무 맘에 안 든다. StringBuilder를 사용해 본 적 없는 게 큰 걸림돌이었던 것 같다.
내일 StringBuilder 공부와 포스팅을 해야겠다...
그리고 이중 for문이 들어갔다는 점도 개선할 수 있지 않을까 생각이 들었다.
다른 사람의 풀이를 보자
public string 부분문자열이어붙여문자열만들기(string[] my_strings, int[,] parts)
{
var sb = new StringBuilder();
for (int i = 0; i < parts.GetLength(0); ++i)
{
int start = parts[i, 0];
int end = parts[i, 1];
string subString = my_strings[i].Substring(start, end - start + 1);
sb.Append(subString);
}
return sb.ToString();
}
StringBuilder를 사용해 메모리 낭비도 줄였고,
for문을 이중으로 쓰지 않아 시간복잡도 또한 O(n)이다
즉, 빠르다...!
'프로그래머스' 카테고리의 다른 글
이어 붙인 수(C#) (0) | 2024.05.22 |
---|---|
글자 이어 붙여 문자열 만들기 (C#) (0) | 2024.05.22 |
접두사인지 확인하기 (C#) (0) | 2024.05.21 |
배열 만들기 1 (C#) (0) | 2024.05.21 |
카운트다운 (C#) (0) | 2024.05.20 |