본문 바로가기
코딩테스트 준비/백준

[백준] 1541번 - 잃어버린 괄호 [Java]

by mwzz6 2024. 12. 2.

https://www.acmicpc.net/problem/1541

 

[백준] 1541번 - 잃어버린 괄호 [Java]


1.  아이디어

 

뺄셈 기호 사이의 수를 먼저 더하고 빼는게 최소값이 된다는 점을 활용한다.


2. 문제풀이

 

수와 덧셈 기호로 이루어진 문자열을 파싱해서 합을 구하는 sum 메서드를 먼저 만들었다. 이후 뺄셈 기호로 주어진 입력을 파싱하고 첫 토큰의 합에서 나머지 토큰들의 합을 빼주면 된다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), "-");

        int ans = sum(st.nextToken());

        while (st.hasMoreTokens()) {
            ans -= sum(st.nextToken());
        }

        System.out.println(ans);
    }

    // + 부호로 이어진 수의 합
    private static int sum(String token) {
        StringTokenizer st = new StringTokenizer(token, "+");
        int sum = 0;
        while (st.hasMoreTokens()) {
            sum += Integer.parseInt(st.nextToken());
        }
        return sum;
    }

}

4. 후기

 

'코딩테스트 준비 > 백준' 카테고리의 다른 글

[백준] 1439번 - 뒤집기 [Java]  (0) 2024.12.02
[백준] 2217번 - 로프 [Java]  (0) 2024.12.02
[백준] 10430번 - 나머지 [Java]  (1) 2024.12.02
[백준] 11399번 - ATM [Java]  (0) 2024.12.02
[백준] 1026번 - 보물 [Java]  (0) 2024.12.02