프로그래머스 코딩테스트 연습

[프로그래머스 코테 C#] Lv1. 가운데 글자 가져오기

노재두내 2024. 5. 8. 11:48

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항
  • s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예 s                                                                                             return
"abcde" "c"
"qwer" "we"

<나의 풀이>

먼저 홀수만 한번 풀어보자

단어의 길이를 알려면 .Length를 써야하니 ==> string을 배열로 변환하자  ===>ToCharArray() 사용 

public class Solution {
    public string solution(string s) {
        string answer = "";
        char[] chars = s.ToCharArray();
        //짝수
        if(chars.Length%2==0)
        {
            
        }
        //홀수
        else
        {
            int n=chars.Length/2;
            answer+=chars[n];
        }
        return answer;
    }
}

예상처럼 길이가 홀수일 경우에는 잘 출력된다.

 

문제는 짝수인데,

int n=chars.Length/2;
answer+=chars[n-1];
answer+=chars[n];

이런식으로 하면 될듯

 

<전체 코드>

public class Solution {
    public string solution(string s) {
        string answer = "";
        char[] chars = s.ToCharArray();
        //짝수
        if(chars.Length%2==0)
        {
            int n=chars.Length/2;
            answer+=chars[n-1];
            answer+=chars[n];
        }
        //홀수
        else
        {
            int n=chars.Length/2;
            answer+=chars[n];
        }
        return answer;
    }
}

오예 통과


<다른사람 풀이>

Substring을 많이 씀

 

이 인스턴스에서 부분 문자열을 검색합니다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다

using System;
public class Solution {
    public string solution(string s) {
        string answer = "";

        int a = s.Length / 2;
            if (s.Length % 2 != 0)
                answer = s.Substring(a, 1);            
            else
                answer = s.Substring(a - 1, 2);

        return answer;
    }
}

짝수이면, s.Length/2 위치에서 한개검색

홀수이면, s.Length/2 -1 위치에서 두개 검색