알고리즘
[백준, 자바, 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]);
}
}