Algorithms 🚀/Baekjoon

[백준/1541번] 잃어버린 괄호 [Java]

728x90

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

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

문제 설명 ✨

이 문제의 핵심은 최대한 큰 수를 만들어서 빼는 것이라고 생각했다. (그래야 최솟값을 구할 수 있기 때문에!)

 

그래서 최대한 많은 수를 +로 묶어주고 빼면 되는 문제이다.

 

split을 이용해서 문자열을 자를 때 split("+")로 입력하면 인식을 못하기 때문에

 

split("\\+") or split("[+]")로 잘라주어야 함!!

 

풀이 🎉

import java.util.Scanner;

public class BOJ_1541 {
	static int min = 0;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String exp = sc.nextLine();
		
		String[] str = exp.split("-");
		min += sum(str[0].split("[+]"));
		
		for(int i=1; i<str.length; i++) {
			min -= sum(str[i].split("[+]"));
		}
		
		sc.close();
	}
	
	static int sum(String[] str) {
		int result = 0;
		
		for(String num : str) {
			result += Integer.parseInt(num);
		}
		return result;
	}
}
728x90

'Algorithms 🚀 > Baekjoon' 카테고리의 다른 글

[백준/8958번] OX퀴즈  (0) 2021.02.16
[백준/3052번] 나머지  (0) 2021.02.02
[백준/1546번] 평균  (0) 2021.02.02
[백준/2577번] 숫자의 개수  (0) 2021.02.01
[백준/10818번] 최소, 최대  (0) 2021.02.01