https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
저는 해당 문제를 그리디적으로 문제를 해결하였습니다.
저는 +를 먼저 연산하고 -를 나중에 연산하여 문제를 해결하였습니다.
이후 첫번째 값이면 결과값을 초기화하고, 첫번째 값이 아니라면 결과값에서 각각의 값을 뺴 결과를 도출하였습니다.
package BOJ.greedy;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.function.Function;
public class BOJ_1541 {
private static final int NOT_VALID = 987654321;
private static final String PLUS = "\\+";
private static final String MINUS = "-";
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String command = br.readLine();
String[] deleteMinus = command.split(MINUS);
int result = NOT_VALID;
Function<String,Integer> stoi = Integer::parseInt;
for(String s : deleteMinus){
int sum = 0;
String[] temps = s.split(PLUS);
sum += Arrays.stream(temps).mapToInt(i -> stoi.apply(i)).sum();
if(result == NOT_VALID){
result = sum;
}else{
result -= sum;
}
}
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 최댓값과 최솟값 (JAVA) (0) | 2022.06.29 |
---|---|
프로그래머스 피보나치 수 (JAVA) (0) | 2022.06.28 |
프로그래머스 짝수와 홀수 (JAVA) (0) | 2022.06.26 |
프로그래머스 가운데 글자 가져오기 (JAVA) (0) | 2022.06.25 |
프로그래머스 가장 먼 노드 (JAVA) (0) | 2022.06.24 |