본문 바로가기
프로그래머스

부분 문자열 이어 붙여 문자열 만들기 (C#)

by LemongO 2024. 5. 21.

📌프로그래머스 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