본문 바로가기

컴퓨터/백준

JAVA - 백준 알고리즘 - 1541 잃어버린 괄호

반응형

이 문제는 백준 단계별로 풀기 그리디알고리즘에 분류된 문제이다. 

 

이 문제를 푸는 방법은 "-" 부호 뒤에 온 숫자들을 모두 빼주면 된다.

 

StringTokenizer 를 이용하여 "-" , "+" 를 기준으로 숫자들을 잘라주었다.

 

"-" 부호를 기준으로 앞 쪽에 있던 숫자들 , 첫번째 Token의 숫자들 더해주고 

"-" 부호를 기준으로 뒷 쪽에 있던 숫자들 , 두번째 Token의 숫자들은 마이너스를 해주었다.

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	static int result;

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		result = 0;

		String str = br.readLine();

		StringTokenizer st = new StringTokenizer(str, "- "); // -부호 기준으로 자르기

		str = st.nextToken(); // 첫번째 토큰
		StringTokenizer st1 = new StringTokenizer(str, "+ "); // +부호 기준으로 자르기
		while (st1.hasMoreTokens()) {
			int ele = Integer.parseInt(st1.nextToken()); 
			result += ele; // 더해주기
		} 
		
		while (st.hasMoreTokens()) { // -부호 이후에 나오는 토큰이 있을 때
			str = st.nextToken();
			st1 = new StringTokenizer(str, "+ "); // +부호 기준으로 자르기
			while (st1.hasMoreTokens()) {
				int ele1 = Integer.parseInt(st1.nextToken());
				result -= ele1;  // 빼주기
			}
		}
		System.out.print(result);
	}
}
 
반응형