알고리즘

[백준, 자바, 1541번] 잃어버린 괄호

hminor 2024. 11. 8. 18:06

풀이

  • 취업이 어려워, 우울해서 그냥 오늘도 알고리즘 안풀까하다가...
  • 그래도 하나라도 풀자라는 마음에 품...
  • 해당 문제는 단순히 입력값을 String으로 받아서
  • toCharArray로 받은 변환한 다음
  • 각 char들을 확인하면서 -또는+가 아닐 경우
  • StringBuilder에 더하고ㅡ
  • -또는+라면 우선 StringBuilder에 있는 걸 Integer로 변환하고
  • -가 나왔다면 idx를 1로 변경 한 다음
  • 해당 idx에 값에 계속 추가하여 해결.
  • 처음에는 -가 나올때마다 변경하여 해결하려 했지만,
  • 예제를 따로 만들어 적용하려다 보니
  • 이상함을 감지하여 아래와 같이 적용 후 해결.

 

import java.util.Scanner;

public class _1541 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] ipt = sc.next().toCharArray();
        StringBuilder sb = new StringBuilder();
        int[] now = {0,0};
        int idx = 0;
        for (char i: ipt) {
            if (i=='-'||i=='+') {
                now[idx]+= Integer.parseInt(sb.toString());
                if (i=='-' && idx!=1) idx = (idx+1)%2;
                sb.delete(0,sb.length());
            }
            else sb.append(i);
        }
        now[idx]+= Integer.parseInt(sb.toString());
        System.out.println(now[0]-now[1]);
    }
}