문제 풀이/백준
[백준] 1541번. 잃어버린 괄호(JAVA)
27200
2024. 12. 2. 15:18
문제
https://www.acmicpc.net/problem/1541
풀이(15분)
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
boolean start = false;
if(input.charAt(0) == '-'){
start = true;
}
String[] split = input.split("-");
ArrayList<Integer> list = new ArrayList<>();
for(String s : split){
String[] temp = s.split("\\+");
int sum = 0;
for(String t : temp){
sum += Integer.parseInt(t);
}
list.add(sum);
}
int totalSum = list.stream()
.mapToInt(Integer::intValue) // 요소를 int로 매핑
.sum(); // 합산
totalSum *= -1;
if(!start){
totalSum += list.get(0)*2;
}
System.out.println(totalSum);
}
}
1. -를 기준으로 우선 분리한다.
2. -로 분리된 각 요소들을 모두 더한다.(- 뒤에 있는 것들을 최대한 + 해둬야 -가 크게 작용함으로)
3. 제일 앞에 부호가 -였는지 아닌지를 확인한 후에 계산을 진행한다.
3-1. -가 아니었다면 제일 앞 숫자는 +로 들어가야한다.
3-2. -였다면 모두 -로 들어가도 된다.
ps)한동안 split메서드를 안 쓰다보니 바로 생각이 안 났는데 역시 연습이 필수다.