🧩PS/🥉Easy

[JAVA] 백준 1541번 - 잃어버린 괄호

Cocoon_ 2021. 11. 5. 00:58
반응형

 

📖 문제

 

📋 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String s = sc.next();
		s += '+'; // 아래의 반복문을 돌면서 마지막 숫자를 연산하기 위해 넣어주는 문자열
		boolean flag = false;
		int ans = 0;
		String tmp = "";
		
		for (int i = 0; i < s.length(); i++) {
			if(s.charAt(i) == '+' || s.charAt(i) == '-') {
				if(flag) {
					ans -= Integer.parseInt(tmp);
				}else {
					ans += Integer.parseInt(tmp);
				}
				
				if(s.charAt(i) == '-') flag = true;
				tmp = "";
				
			}else {
				tmp += s.charAt(i);
			}
		}
		System.out.println(ans);
	}
}

👨🏻‍💻 결과

 

 

📕 풀이 방법

연산에서 '-'가 나오는 순간 적절하게 괄호를 쳐서 그 뒤의 연산 모두 음수로 만들 수 있으므로 flag라는 boolean형 변수를 둬서 연산을 처리하였습니다. 그리고 s값을 입력받고 해당 반복문에서 마지막에 있는 숫자가 연산되지 않고 반복문이 종료되기 때문에 문자열 뒤쪽에 '+'라는 문자를 덧붙여서 마지막 부분도 연산하고 반복문을 종료할 수 있도록 하였습니다. 

 

 

🔗 링크

https://www.acmicpc.net/problem/1541

반응형