코테공부

[프로그래머스] 문자열의 앞의 n글자

meltingmelvin 2023. 12. 4. 12:39

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1. 배열을 생각한 코드

 

-문자열 하나하나에 접근하되, i는 0부터 시작해 n보다 작을때까지의 요소에만 접근하였다.

using System;

public class Solution
{
    public string solution(string my_string, int n)
    {
        int i = 0;
        string answer = "";
        while(i < n)
        {
            answer += my_string[i];
            i++;
        }
        return answer;
    }
}

 

2. string.Remove를 활용한 경우

using System;

public class Solution {
    public string solution(string my_string, int n) {
        return my_string.Length == n ? my_string : my_string.Remove(n);
    }
}

-입력된 문자열의 길이가 n과 같으면 입력된 문자열의 길이만큼 반환하고, 같지 않으면 n번째부터 끝까지만큼 삭제한 문자열을 반환한다. 여기서는 무조건 끝까지 뒷부분은 날리므로 Remove(int startIndex, int count)를 사용하지 않은것이다. 중간부터 어느 지점까지만 날리고 싶다면  Remove(int startIndex, int count)를 사용하면 된다.

 

3. 내가 작성한 답변

 

- string.Substring을 사용

str.Substring(시작위치문자열길이)로, Substring을 사용하면 특정 위치부터 원하는 길이만큼 문자열을 자를 수 있다. IndexOf 메서드를 같이 사용하며 특정 문자 이후 문자열 자르기도 가능하다.

-  문자열을 특정 구분자를 기준으로 배열로 변환하고 싶을 때는 Split 메서드를 사용하면 된다.

using System;

public class Solution {
    public string solution(string my_string, int n) {

        string answer = "";

        if(my_string.Length>=1&& my_string.Length<=1000)     
        {
         if(1<=n && n<=my_string.Length)
         {
             answer = my_string.Substring(0,n);
         }   
     }

        return answer;
    }
}