Notice
Recent Posts
Recent Comments
Link
할껀하고놀자
[백준] 1541번 잃어버린 괄호 본문
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개가 아니라면 그 수들은 다 더해주고, 아니면 그냥하나의 수로 생각하여 처리하였다.
- 이후의 수에서도 + 가 나올 수 있으므로 + 가 나왔다면 그 숫자또한 분리해서 각각 더해주는 작업을 수행하였다.
약간의 정리와 구조화가 더 필요한 문제이다. 나중에 다시 풀어볼 만한 문제..!
'[IT] > 백준' 카테고리의 다른 글
[백준] 1931번 회의실 배정 (0) | 2019.06.02 |
---|---|
[백준] 1946번 신입사원 (0) | 2019.06.02 |
[백준] 2217번 로프 (0) | 2019.06.01 |
[백준] 11399번 ATM (0) | 2019.06.01 |
[백준] 11047번 동전 0 (0) | 2019.05.31 |
Comments