Skip to content

Commit

Permalink
백준/단계별: 1541 잃어버린 괄호 문제풀이 (#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
sieunnnn committed Oct 20, 2023
1 parent 3088109 commit 9459d06
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
48 changes: 48 additions & 0 deletions src/baekjoon/step/greedy/PROB1541.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package algorithm.greedy.baekjoon;

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

public class PROB1541 {

/*
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력
첫째 줄에 정답을 출력한다.
*/

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

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

String[] equationArr = br.readLine().split("-");

int answer = 0;

for (int i = 0; i < equationArr.length; i++) {

int total = 0;
String[] plusArr = equationArr[i].split("\\+");

for (int j = 0; j < plusArr.length; j++) {
total += Integer.parseInt(plusArr[j]);
}

if (i == 0) {
answer += total;
} else {
answer -= total;
}
}

System.out.println(answer);
}
}
26 changes: 26 additions & 0 deletions src/baekjoon/step/greedy/PROB1541.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 입력받은 식에 괄호를 적절히 쳐서 식의 값을 최소로 만들기


# 문자열 입력받기
str = input().split('-')

# 숫자 저장하는 배열
numbers = []

# + 가 포함된 요소를 찾아서 나누고 덧셈 처리 하기
for i in str:
number = 0
temp = i.split('+')

for j in temp:
number += int(j)

numbers.append(number)

# 완성된 리스트에서 0 번째 수에서 나머지 빼주기
result = numbers[0]

for i in range(1, len(numbers)):
result -= numbers[i]

print(result)

0 comments on commit 9459d06

Please sign in to comment.