반응형
🅰 백준 1541. 잃어버린 괄호
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
✏️ 문제 풀이
- 식의 값을 최소로 만들려면 +를 먼저 수행하고 -를 수행하면 식의 값이 최소가 된다.
- 1. 읽어온 문자열을 .split을 이용하여 '-' 단위로 문자열을 나눠서 저장한다.
- 2. 나눠진 문자열을 다시 '+' 단위로 문자열을 나눠서 각 배열을 더해서 sum에 저장한다.
- 2-2. i가 0일때 제일 첫 시작이므로 max에 더하고 나머지 sum값들은 max-=sum을 해줘서 연산의 최소값을 구해주었다.
✏️ 소스코드
package greedy;
import java.io.*;
/*
* 덧셈 먼저 수행한 후 뺄셈을 수행하면 최소값이 나온다.
* */
public class Main_실버2_1541_손은성 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max = 0;
// -를 이용하여 문자열을 분리하여 저장
String count[] = br.readLine().split("-");
// count만큼 split(+)를 해줘서 그 값을 더해서 최소값 계산
for (int i = 0, end = count.length; i < end; i++) {
int sum = 0;
String plusCount[] = count[i].split("\\+");
for (int j = 0; j < plusCount.length; j++) {
sum += Integer.parseInt(plusCount[j]);
}
if (i == 0) { // 제일 처음 값 저장
max = sum;
} else {
max -= sum;
}
}
System.out.println(max);
}
}
✅ 후기
- 그리디 알고리즘은 각 케이스마다 최적의 조건을 찾아내는 것이 어려운 것 같다. 어떻게 구현할지에 대한 어려움도 있었지만 문제를 어떻게 접근해야 하는지에 더 많은 고민을 해봐야 할 것 같다.
반응형
'백준 > 그리디' 카테고리의 다른 글
백준 2875. 대회 or 인턴 (0) | 2021.08.18 |
---|---|
백준 1744. 수 묶기 (0) | 2021.08.17 |
백준 11399. ATM (0) | 2021.08.17 |
백준 1931. 회의실 배정 (0) | 2021.08.17 |
백준 11047. 동전 (0) | 2021.08.17 |
댓글