반응형
📖 문제
📋 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
s += '+'; // 아래의 반복문을 돌면서 마지막 숫자를 연산하기 위해 넣어주는 문자열
boolean flag = false;
int ans = 0;
String tmp = "";
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) == '+' || s.charAt(i) == '-') {
if(flag) {
ans -= Integer.parseInt(tmp);
}else {
ans += Integer.parseInt(tmp);
}
if(s.charAt(i) == '-') flag = true;
tmp = "";
}else {
tmp += s.charAt(i);
}
}
System.out.println(ans);
}
}
👨🏻💻 결과
📕 풀이 방법
연산에서 '-'가 나오는 순간 적절하게 괄호를 쳐서 그 뒤의 연산 모두 음수로 만들 수 있으므로 flag라는 boolean형 변수를 둬서 연산을 처리하였습니다. 그리고 s값을 입력받고 해당 반복문에서 마지막에 있는 숫자가 연산되지 않고 반복문이 종료되기 때문에 문자열 뒤쪽에 '+'라는 문자를 덧붙여서 마지막 부분도 연산하고 반복문을 종료할 수 있도록 하였습니다.
🔗 링크
반응형
'🧩PS > 🥉Easy' 카테고리의 다른 글
[JAVA] 백준 5086번 - 배수와 약수 (0) | 2021.11.08 |
---|---|
[JAVA] 백준 13305번 - 주유소 (0) | 2021.11.08 |
[JAVA] 백준 11399번 - ATM (0) | 2021.11.05 |
[JAVA] 백준 2745번 - 진법 변환 (0) | 2021.11.03 |
[JAVA] 백준 11047번 - 동전 0 (0) | 2021.10.27 |