알고리즘/C#

[C#] 가운데 글자 가져오기- 프로그래머스

야아옹 2020. 10. 8. 15:57

문제 : string 변수가 주어지며 길이가 짝수 일 시 가운데 두글자 홀 수 일 시 가운데 글자 반환

제한

  • s는 길이가 1 이상, 100이하인 스트링입니다.

 

풀이 : 문제 자체에서 Substring을 사용하라는거 같아서 쓰지 않고 해보려고 풀었다..

public static string solution(string s)
        {
            string answer = "";

            if (s.Length % 2 == 0)
                answer = s.AsEnumerable().ElementAt(s.Length / 2 - 1).ToString() + s.AsEnumerable().ElementAt(s.Length / 2).ToString();
            else
                answer = s.AsEnumerable().ElementAt(s.Length / 2).ToString();

            return answer;
        }

 

풀이2 : 다른 풀이를 확인 하는 도중 string 변수를 바로 Index 로 가져올 수 있다는 것을 처음알게 되었다.

         대신 가져왔을 시 Char 형식 이며, Char 형식으로 모아 다시 String 으로 캐스팅 시 이상한 값이 나오게 되었다.

         사용할땐 다시 확인 하는게 중요할거 같다.

public static string solution(string s)
        {
            string answer = "";

            int length = s.Length;
            if (length % 2 == 0)
            {
                int pointer = length / 2 - 1;
                answer = (s[pointer].ToString() + s[++pointer].ToString());
            }
            else
            {
                int pointer = length / 2 - 1;
                answer = (s[++pointer]).ToString();
            }

            return answer;
        }