본문 바로가기
공부/코딩테스트

프로그래머스/C# - 문자열 곱하기

by 잰쟁 2024. 3. 11.
728x90

 

문제 설명

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.

 

제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ k ≤ 100

 

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string은 "string"이고 이를 3번 반복한 문자열은 "stringstringstring"이므로 이를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string은 "love"이고 이를 10번 반복한 문자열은 "lovelovelovelovelovelovelovelovelovelove"이므로 이를 return 합니다.

 

 

풀이

: for()문을 활용하여 구해주기!

using System;

public class Solution {
    public string solution(string my_string, int k) {
        string answer = "";
        for(int i =0;i<k;i++)
        {
            answer += my_string;
        }
        return answer;   
    }
}

 

==> 반복할 횟수인 k만큼 for문을 돌리고, 그 안에서 문자열을 더해주는 식으로 풀어보았다.

 

 


 

++) 다른 사람 풀이

: StringBuilder.Append() 사용

public class Solution {
    public string solution(string my_string, int k) 
    {
        var sb = new StringBuilder();
        for(int i = 0; i < k; ++i)
            sb.Append(my_string);
        return sb.ToString();
    }
}

 

▶ StringBuilder는 문자열을 생성을 도와주는 클래스로 Append 함수를 이용해서 문자열을 이어붙일 수 있음.
▶ + 연산과 다른점은 문자열을 조합할 때 새로운 string 객체를 생성하지 않아 메모리 누수가 되지 않음.


출처: https://blog.spiralmoon.dev/entry/C-string-string-과-StringBuilderAppend-차이 [Spiral Moon's programming blog:티스토리]