🫡문제
백준 1541 - 잃어버린 괄호
🫡코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
String[] arr = num.split("-");
int result = 0;
for (int i = 0; i < arr.length; i++) {
int temp = operator(arr[i]);
if (i == 0) {
result += temp;
} else {
result -= temp;
}
}
System.out.println(result);
}
private static int operator(String number) {
int sum = 0;
String temp[] = number.split("\\+");
for (int i = 0; i < temp.length; i++) {
sum += Integer.parseInt(temp[i]);
}
return sum;
}
}
🫡풀이
- 가장 큰 수를 빼줘야 가장 작은 수가 나온다
- 더하는 부분에 있는 숫자들을 먼저 더해준 후 빼준다
ex) 100-40+50+74-30 👉 100-(40+50+74)-30 👉 100-164-30 = -94
- 첫번째로 나온 숫자는 무조건 더하기를 해줘야 한다
- 마지막에 나온 숫자는 무조건 빼기를 해줘야 한다
🚨 주의
❗ +
를 문자로 취급할 때는 이스케이프 처리를 꼭 해줘야 한다!