[IT]/백준
[백준] 1541번 잃어버린 괄호
working_hard
2019. 6. 1. 23:54
728x90
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String [] str = sc.nextLine().split("-");
String yang = str[0];
int iyang = 0;
boolean ok = false;
if(yang.contains("+")) {
ok=true;
}
if(ok) {
String [] tmp = yang.split("\\+");
for (int i = 0; i < tmp.length; i++) {
iyang+=Integer.parseInt(tmp[i]);
}
}else {
iyang=Integer.parseInt(yang);
}
int umm = 0;
for (int i = 1; i < str.length; i++) {
if(str[i].contains("+")) {
String [] tmp = str[i].split("\\+");
for (int j = 0; j < tmp.length; j++) {
umm+=Integer.parseInt(tmp[j]);
}
}else {
umm+=Integer.parseInt(str[i]);
}
}
int res = iyang-umm;
System.out.println(res);
}
}
포인트 : split 함수를 쓸때 주의점.. .댕글링? 어쩌고 에러가 나올 떄 \\ 를 앞에 두개 붙여줘야 해결된다고 한다. 자바만의 특성이니까 주의하자.
코딩할 때, 구조화 시켜서 잘 생각해봐야 한다. 이렇게 쪼갰을 때, +를 포함하고 있다면?? 아니면?? 이라는 생각 해봐야 한다.
처음 -가 나오기 이전과 이후를 구분하고, 그 후에 처음 나오기 전에 수가 1개인가 아닌가를 나누었다. 1개가 아니라면 그 수들은 다 더해주고, 아니면 그냥하나의 수로 생각하여 처리하였다.
- 이후의 수에서도 + 가 나올 수 있으므로 + 가 나왔다면 그 숫자또한 분리해서 각각 더해주는 작업을 수행하였다.
약간의 정리와 구조화가 더 필요한 문제이다. 나중에 다시 풀어볼 만한 문제..!