https://www.acmicpc.net/problem/1541
1. 풀이
문제에서 적절히 괄호를 넣으라고 하였으므로, 괄호가 있어도 되고 없어도 된다는 뜻입니다.
따라서 마이너스(-)가 나온 뒤 나오는 숫자들을 모두 더하고, 다음 마이너스(-)가 나오기 전 숫자에서 빼주면 됩니다.
입력값을 문자열로 받은 후, 마이너스를 기준으로 문자열을 잘라줍니다. 자른 문자열을 모두 더해줍니다. 마지막으로 전부 마이너스 해주면 됩니다.
문자열을 푸는 방식을 생각했는데, 다른 사람들의 풀이를 보니 수학적으로 푸는 방법도 있습니다.
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 마이너스를 기준으로 잘라줍니다.
String[] split_minus = sc.next().split("\\-");
int result = 0;
int tmpSum;
for(int i = 0; i < split_minus.length; i++) {
tmpSum = 0;
// 플러스를 기준으로 잘라줍니다.
String[] split_plus = split_minus[i].split("\\+");
for(int j = 0; j < split_plus.length; j++) {
tmpSum += Integer.parseInt(split_plus[j]);
}
if(i == 0) // 첫번째 숫자를 위한 처리.
tmpSum *= -1;
result-=tmpSum;
}
System.out.println(result);
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 1946] 신입 사원 (0) | 2020.04.03 |
---|---|
[백준 1120] 문자열 - 자바 (0) | 2020.04.03 |
[백준 2875] 대회 or 인턴 (0) | 2020.04.03 |
[백준 10610] 30 - 자바 (0) | 2020.04.03 |
[백준 2217] 로프 - 자바 (0) | 2020.04.03 |
댓글