C# 프로그래밍 기초 실습 전자책

C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.


퀴즈 질문


예상답변/설명

C# 에서 문자열을 숫자로 변경하기 위해서는 보통 int.Parse()를 사용한다. 하지만, 이 문제는 자신의 함수를 작성할 것을 요청했으므로, 문자열을 파라미터로 받아들여 정수를 리턴하는 함수를 아래와 같이 작성할 수 있다.

int StrToInt(string s)
{
    if (string.IsNullOrEmpty(s)) return 0;            

    int i = 0, num = 0;
    int sign = 1;

    char[] a = s.ToCharArray();
    if (a[i] == '-')
    {
        i++;
        sign = -1;
    }

    while (i < a.Length)
    {
        num *= 10;
        num += a[i] - '0';
        i++;
    }

    return num * sign;
}

기본적으로 우선 - 사인 처리를 하고, 해당 문자열을 문자 배열로 변경한 후, 각 문자를 숫자로 변경하면서 10배 처리를 진행(10진수이므로)한다. 숫자 변환이 끝나면 사인을 처리해 준다. 참고로, 문자 배열로 변경하지 않고 string의 Substring()을 사용하거나 String 인덱서를 사용할 수도 있다.