문제
알고리즘 고민
맨 처음에 문제를 잘못 이해해서 괄호를 단 한번 열고 닫을 수 있는줄 알고 DP 방식으로 풀으려고 했다... (문제를 꼼꼼히 읽는 습관을 기르자..)
괄호를 칠 수 있는 개수의 제한이 없다는 것을 확인하고 나서는 문제가 쉽게 풀렸다.
식을 진행하면서 ( - )연산자가 나온다면 그 이후부터는 모든 숫자를 음수로 생각하면 되기에 그렇게 문제를 풀었다.
입력을 받는 방식에서 람다를 이용해서 한번 받아보겠다고 이거저거 시도를 해보았다.
또한, 숫자만 뽑아내거나 연산자만 뽑아내는 방식 이것저것 해보면서 정규식에 대한 내용을 조금 공부했다.
JAVA Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int[] num = Arrays.stream(input.split("\\+|-")).mapToInt(s->Integer.parseInt(s)).toArray();
String oper = input.replaceAll("[0-9]", "");
int sum = num[0];
boolean isMinus = false;
for (int i = 1; i < num.length; i++) {
if (isMinus || oper.charAt(i - 1) == '-') {
isMinus=true;
sum-=num[i];
} else {
sum+=num[i];
}
}
System.out.println(sum);
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 17298번 : 오큰수 (JAVA/자바) (0) | 2022.04.07 |
---|---|
[BOJ] 2981번 : 검문 (JAVA/자바) (0) | 2022.04.07 |
[BOJ] 1931번 : 회의실 배정 (JAVA/자바) (0) | 2022.04.06 |
[BOJ] 2580번 : 스도쿠 (JAVA/자바) (0) | 2022.04.06 |
[BOJ] 9663번 : N-Queen (JAVA/자바) (0) | 2022.03.11 |