Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- JQuery
- SQL
- 알고리즘
- 파이썬
- HTTP상태
- 탐욕알고리즘
- HTTP
- 그리디알고리즘
- 자바
- API
- ChatGPT
- 서버
- java
- 코딩테스트
- SQLP
- Spring
- 챗지피티
- 개발
- jsp
- 백준
- 개발자
- 하루코딩
- 네트워크
- 정렬알고리즘
- codingtest
- SQLD
- javascript
- 알고리즘코딩테스트
- 프로그래머스
- Python
Archives
- Today
- Total
개발자's Life
[코딩테스트] Java_ 백준 1541번 잃어버린 괄호 (그리디 알고리즘) - Rowen Jobs 본문
728x90
반응형
백준 1541번 잃어버린 괄호
이번 문제는 단순히 마이너스 플러스 연산자로만 풀었습니다.
최소값을 만드는 규칙을 찾았고
마이너스 연산자에 대해 split 함수로 나누어 주고 그 나누어 진 값에 플러스 연산자에 대해 split 으로 나누었습니다.
잃어버린 괄호 성공
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 | 128 MB | 73855 | 39524 | 31040 | 52.906% |
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력
첫째 줄에 정답을 출력한다.
예제 입력 1 복사
55-50+40
예제 출력 1 복사
-35
예제 입력 2 복사
10+20+30+40
예제 출력 2 복사
100
예제 입력 3 복사
00009-00009
예제 출력 3 복사
0
아래 주석과 코드를 공유합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
String param = br.readLine();
// 작업 준비
int minus_split_length = param.split("-").length;
int minus_total = 0;
int plus_total = 0;
// 마이너스 작업 먼저 시작
for(int i = 0; i < minus_split_length; i++){
int plus_split_length = param.split("-")[i].split("\\+").length;
minus_total = 0;
// 플러스 집계 시작
for (int j = 0; j < plus_split_length; j++){
minus_total += Integer.parseInt(param.split("-")[i].split("\\+")[j]);
}
// 마이너스 집계 시작
if(i == 0){
plus_total = minus_total;
}else{
plus_total -= minus_total;
}
}
System.out.println(plus_total);
}
}
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
728x90
'코딩테스트 > Test' 카테고리의 다른 글
[코딩테스트] Java_ 백준 1026번 보물 (그리디 알고리즘) - Rowen Jobs (0) | 2023.08.14 |
---|---|
[코딩테스트] Java_ 백준 11047번 동전 0 문제풀이(그리디 알고리즘) - Rowen Jobs (0) | 2023.08.11 |
[코딩테스트] Java_ 백준 11399번 ATM 문제풀이(그리디 알고리즘) - Rowen Jobs (0) | 2023.08.10 |
[코딩테스트] Java_ 백준 1931번 회의실 배정 문제풀이(그리디 알고리즘) - Rowen Jobs (0) | 2023.08.09 |
[코딩테스트] Java _ 백준 2839번 설탕배달 문제풀이(그리디 알고리즘) - Rowen Jobs (0) | 2023.08.07 |
Comments