문제 풀기/C#

30. 가운데 글자 가져오기(Substring(시작 위치, 개수))

kagan-draca 2025. 1. 17. 15:10

 

풀이 1) string 매개 변수 s의 길이 - 1로 index의 총 길이를 구한 후, 

 

- index가 짝수일 경우(실질적으로 문자열의 길이가 홀수)

 

s[size / 2].ToString()

 

으로 문자열에서 문자를 추출하고 반환형이

 

string이기 때문에 다시 ToString()으로 문자열로 만들어준다.


- index가 홀수일 경우(실질적으로 문자열의 길이가 짝수)

 

s[size / 2].ToString() + s[size / 2 + 1].ToString()

 

으로 문자열에서 두 개의 문자를 추출하고 반환형이

 

string이기 때문에 다시 ToString()으로 문자열로 만든 후 

 

'+' 연결 연산자로 두 문자열을 붙여준다.

 

using System;

public class Solution {
    public string solution(string s) {
        int size = s.Length - 1;
        return size % 2 == 0 ? s[size / 2].ToString() : s[size / 2].ToString() + s[size / 2 + 1].ToString();
    }
}

 

풀이 2) string 매개 변수 s의 길이 - 1로 index의 총 길이를 구한 후

 

- index가 짝수일 경우(실질적으로 문자열의 길이가 홀수)

 

s.Substring(size  / 2, 1)을 반환해주고,

 

- index가 홀수일 경우(실질적으로 문자열의 길이가 짝수)

 

s.Substring(size / 2, 2)을 반환해준다.

 

위의 두 식을 정리하면

 

using System;

public class Solution {
    public string solution(string s) {
        int size = s.Length - 1;
        return s.Substring(size / 2, size % 2 == 0 ? 1 : 2);
    }
}

 

위와 같이 코드가 작성 된다.

 

 

풀이 1)이 형변환이 자주 이뤄지기 때문에 풀이 2) 보다 더 많은 수행시간을 요구하는 것으로 추측된다.

'문제 풀기 > C#' 카테고리의 다른 글

32. 내적  (0) 2025.01.20
31. 수박(string.Concat() 함수, Enumerable.Repeat 함수)  (0) 2025.01.17
29.제일 작은 수 제거하기  (0) 2025.01.17
28. 없는 숫자 더하기  (0) 2025.01.17
27. 핸드폰 번호 가리기  (0) 2025.01.16