우보천리 개발

[BJ] 1541 잃어버린 괄호 Java 본문

알고리즘/백준

[BJ] 1541 잃어버린 괄호 Java

밥은답 2023. 1. 25. 17:49
반응형

백준 1541번 잃어버린 괄호

문제

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

아이디어

  • 가장 작은 값을 구하기 위해서는 가장 큰 숫자를 빼면 된다
  • 따라서 더하기가 있는 숫자들은 묶어서 더하고, 나머지 숫자는 다 빼면 된다
  • split() 함수를 써서 특수문자를 사용할 때 이스케이프 기호 사용해주어야함

코드

package baekjoon;
import java.util.*;

class BJ1541 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String temp = sc.nextLine();

        // 제일 작은 수를 만들기 위해서는 제일 큰 수를 빼면 된다
        String[] str = temp.split("\\-"); // '-' 부호를 기준으로 나누기

        int result = 0; // 계산결과를 담음
        for (int i=0; i<str.length; i++) {
            // '+' 로 묶인 숫자들은 더 해주어야함
            String[] plusArr = str[i].split("\\+");
            int calc = 0;
            for (String number : plusArr) {
                calc += Integer.parseInt(number);
            }

            // 첫번째 숫자는 무조건 더해야함. (앞뒤는 숫자이기 때문에)
            if (i==0) result += calc;
            else result -= calc; // 나머지 숫자는 빼야 커짐
        }
        System.out.println(result);
    }
}
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[BJ] 1325 효율적인 해킹 Java  (0) 2023.01.26
[BJ] 18352 특정 거리의 도시 찾기 Java  (0) 2023.01.26
[BJ] 1744 수 묶기 Java  (0) 2023.01.26
[BJ] 1715 카드 정렬하기 Java  (0) 2023.01.25
[BJ] 1931 회의실 배정 Java  (0) 2023.01.25
Comments