[BOJ] 1541 : 잃어버린 괄호
Question
Solution
- 최솟값이 되기 위해서는 ‘-‘ 다음에 ‘()’를 붙여서 양수를 음수로 바꿔버리는 방법이 있다
- 55-50+40 에서 55-(50+40)을 하면 최솟값이된다
- ’-‘가 있을때와 없을때를 나누어 Split()을 한다 (부호는 사라짐 = 기본값 ‘+’)
- 내부에서 ‘+’ 기준으로 나누어 int형으로 바꿔 연산을 해야한다.
Cord
C#
using System;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main()
{
int answer = 0;
string input = Console.ReadLine();
string[] nums;
if (input.Contains('-'))
{
nums = input.Split('-');
for (int idx = 0; idx < nums.Length; idx++)
{
if (nums[idx].Contains('+'))
{
string[] strPlusNums = nums[idx].Split('+');
int[] plusNumss = Array.ConvertAll(
strPlusNums, int.Parse);
foreach (int num in plusNumss)
{
if (idx != 0)
{
answer -= num;
}
else
{
answer += num;
}
}
}
else
{
if (idx != 0)
{
answer -= int.Parse(nums[idx]);
}
else
{
answer += int.Parse(nums[idx]);
}
}
}
}
else
{
nums = input.Split('+');
for (int idx = 0; idx < nums.Length; idx++)
{
answer += int.Parse(nums[idx]);
}
}
Console.WriteLine(answer);
}
}
}
C++
아직 없음