728x90
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다.
www.acmicpc.net
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] ex = sc.nextLine().replace("-", " -").replace("+", " +").split(" ");
int n = ex.length, sum = 0;
int[] num = new int[n];
for( int i = 0; i < n; i++ )
num[i] = Integer.parseInt( ex[i] );
boolean isNegative = false;
for( int i = 0; i < n; i++ ) {
if( isNegative && num[i] > 0 )
num[i] *= -1;
if( num[i] < 0 )
isNegative = true;
sum += num[i];
}
System.out.println( sum );
sc.close();
}
}
- 부호 앞에 공백을 넣어주고 공백을 구분자로 삼아서 문자열을 자름
- Integer.parseInt() 함수로 String->int로 형변환 후 배열에 차례로 담아줌
- 배열을 순차적으로 탐색하며 배열의 값을 더해나감
- 음수를 만난 순간부터 모든 양수는 음수로 치환하여 더함
- 최솟값 출력
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] 1003 : 피보나치 함수 / 동적 계획법 1 (0) | 2020.06.19 |
---|---|
[백준(Baekjoon)][자바(java)] 2748 : 피보나치 수 2 / 동적 계획법 1 (0) | 2020.06.19 |
[백준(Baekjoon)][자바(java)] 11399 : ATM / 그리디 알고리즘 (0) | 2020.05.11 |
[백준(Baekjoon)][자바(java)] 1931 : 회의실배정 / 그리디 알고리즘 (0) | 2020.05.11 |
[백준(Baekjoon)][자바(java)] 11047 : 동전 0 / 그리디 알고리즘 (0) | 2020.05.11 |