반응형
이문제는 그리디를 이용하여 풀수있다.
문제를 풀기위해 여러가지 방법을 생각해보았다. +와 -에 대해 우선순위를 주는 방법도 생각해보았는데 구현이 생각보다 쉽지 않았다. 결론적으로 이 문제는 -를 기준으로 - 사이에있는 +와 숫자는 모두 연산해줘도 되는 문제였다. 그래서 우선 -를 기준으로 다 나누고, 모든 연산을 해주었다. 그 이후 맨앞에 것을 제외하고 모두음수로 만들어줄수있는 구성을 만들고 모두 더해주어서 풀 수 있었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package study5;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main_bj_1541_잃어버린괄호 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st= new StringTokenizer(br.readLine(),"-");
StringTokenizer stPlus= null;
List<Integer> list =new ArrayList<>();
while(st.hasMoreTokens()) {
String str=st.nextToken();
stPlus=new StringTokenizer(str,"+");
int temp=0;
while(stPlus.hasMoreTokens()) {
temp+=Integer.parseInt(stPlus.nextToken());
}
list.add(temp);
}
int answer=list.get(0);
for(int i=1;i<list.size();i++) {
answer-=list.get(i);
}
System.out.println(answer);
}
}
|
반응형
'Algorithm' 카테고리의 다른 글
[BOJ] 5052. 전화번호 목록 (0) | 2020.09.10 |
---|---|
[BOJ] 1744. 수 묶기 (2) | 2020.09.08 |
[Programmers] 방금그곡 (0) | 2020.09.04 |
[BOJ] 1786. 찾기 (0) | 2020.09.04 |
[Programmers] 괄호 변환 (0) | 2020.09.03 |