우보천리 개발
[BJ] 1541 잃어버린 괄호 Java 본문
반응형
백준 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