C# 문자열로 된 "1+2+3" 의 합을 구하라!

2019. 6. 14. 10:48C#

728x90
반응형

 

문제!

"1+2+3" 이라는 문자열을 숫자로 계산하여 합을 나타내라

결과 : ex) 1+2+3 = 6



string temp = "1+2+3";


먼저 위와 같은 문자열이 있다고 가정을 하고 (물론 입력 받아서 할 수도 있지만 귀찮기 때문..)

문자열로 "1+2+3" 으로 되어있는 걸 어떻게 더하지? 생각을 하다 너무 쉬운 방법이 있었다

바로 "+" 를 기준으로 문자를 나누는 것이다. "+"라는 문자를 기준으로 나누게 되면 바로 이렇게 될 것이다

 

string[] result= temp.Split('+');

결과 : ["1"] ["2"] ["3"]

그럼 이걸 더하면 되겠다!

더하기 전에 sum 이라는 더할 변수를 선언하고

for문을 이용하여 더합니다.

 

string temp = "1+2+3";
string[] result= temp.Split('+');
int sum = 0;
for (int i = 0; i < result.Length; i++)
{
    sum += result[i];
}


위의 코드로 실행을 하면 오류가 발생 할 것 입니다!

 

이유는 아까 string[] result = temp.split('+') 했을 때

각 방에 들어있는 값들은

string인 문자열로 들어가 있는데

이것을 sum(0) = sum(0) + "1"

하려고 하니 오류가 발생 하는 겁니다.

 

이 오류를 해결하기 위해서는 문자열을 정수형으로 형변환을 해주면 됩니다.

sum += Int32.Parse(result[i]);

바로 이렇게 말입니다! 그러면 이제 계산이 되겠죠?

결과

 

아래는 Full Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            // "1+2+3" 을 더하라!
            string temp = "1+2+3"; 

            string[] result= temp.Split('+');
            
            int sum = 0;
            for (int i = 0; i < result.Length; i++)
            {
                sum += Int32.Parse(result[i]);
            }
 
            Console.WriteLine("결과 : {0} = {1}", temp, sum);
            Console.ReadKey();
        }
    }
}



728x90
반응형