[Alogrithm] BOJ1541 잃어버린괄호 C# 양식

BruteForceA·2023년 1월 17일
1
post-thumbnail

문제


입력 출력

입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.


출력
첫째 줄에 정답을 출력한다.


예제


예제 입력 1

55-50+40

예제 출력 1

-35

예제 입력 2

10+20+30+40

예제 출력 2

100

예제 입력 3

00009-00009

예제 출력 3

0



풀이 및 코드

  public class Boj1541
    {
        // 최소 값을 얻기 위해서는 +를 먼저하고 -를 해주면 최소값이 된다.
        static void Main(String[] args)
        {
            int result = 0;
            List<String> a = new List<string>();
            String aa = Console.ReadLine();

            // 문자열에 - 가 포함된 경우
            if (aa.Contains("-"))
            {
                // -를 기준으로 분리하고 List에 넣어준다.
                a = aa.Split("-").ToList();

                
                // 각 요소들에 + 가 있으면 안에있는 수들을 더해준다.
                for (int i = 0; i < a.Count; i++)
                {
                    a[i] = a[i].Split("+").Select(int.Parse).Sum().ToString();

                    // 0번 요소를 제외하고 -를 붙여준다.
                    if (i > 0)  a[i] = "-" + a[i];
                }
            }
            // 문자열에 +만 있는 경우
            else
            {
                a = aa.Split("+").ToList();
            }

            // 계산된 리스트를 모두 더함
            result = a.Select(int.Parse).Sum();

            Console.WriteLine(result);
        }

    }




출처

https://www.acmicpc.net/problem/1541

0개의 댓글