728x90
1. 문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
2. 풀이
1, 입력값은 String으로 받는다.
2. 첫번째로 나오는 '-'의 인덱스 위치를 idx에 저장한다.
3. StringTokenizer로 idx앞쪽의 숫자들을 전부 result에 더한다. 만약 입력값에 '-'가 없어서 idx가 음수라면 삼항연산자를 이용해 input.length()값으로 대체한다.
4. idx가 0보다 크다면 '-'가 있는 경우이므로 StringTokenizer로 idx뒤의 숫자를 전부 result에서 뺀다.
5. result를 출력한다.
import java.io.*;
import java.util.*;
public class BOJ_1541_잃어버린괄호 {
public static void main(String[] args) throws IOException {
String input = new BufferedReader(new InputStreamReader(System.in)).readLine();
int idx = input.indexOf('-');
int result = 0;
StringTokenizer st = new StringTokenizer(input.substring(0,idx<0?input.length():idx),"+,-");
for(int count = st.countTokens();count>0;count--) result += Integer.parseInt(st.nextToken());
if(idx>=0) {
st = new StringTokenizer(input.substring(idx), "+,-");
for (int count = st.countTokens(); count > 0; count--) result -= Integer.parseInt(st.nextToken());
}
System.out.println(result);
}
}
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 13565 침투 - JAVA (0) | 2022.07.20 |
---|---|
[BOJ] 2529 부등호 - JAVA (0) | 2022.07.19 |
[BOJ] 2583 영역 구하기 - JAVA (0) | 2022.07.17 |
[BOJ] 2468 안전영역 - JAVA (0) | 2022.07.16 |
[BOJ] 10799 쇠막대기 - JAVA (0) | 2022.07.15 |
댓글