Search
Duplicate
📗

잃어버린 괄호

주차
문제번호
1541
언어
티어
실버
유형
수학
문자열
그리디
파싱
nj_Blog
nj_상태
이해도
100%
풀이
사람
이해도 2
13 more properties

문제접근

-를 만난 순간부터 그 뒤는 계속 -를 해준다

놓쳤던 부분

코드

2024 KB

0 ms

#include <iostream> std::string str; int answer = 0; int i = 0; int num = 0; void input_setting() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); } void input() { std::cin >> str; } bool is_num(int i) { if (str[i] >= '0' && str[i] <= '9') return (true); return (false); } void getnum() { for ( ; is_num(i); i++) num = num * 10 + (str[i] - '0'); } void solution() { int len = str.length(); int sign = 1; while (i < len) { if (str[i] == '-') { ++i; sign = -1; getnum(); } else if (str[i] == '+' && sign == -1) { ++i; getnum(); } else if (is_num(i)) getnum(); else i++; answer += sign * num; num = 0; } } void print() { std::cout << answer; } int main(void) { input_setting(); input(); solution(); print(); return (0); }
C++
복사