반응형
코딩하기 전 생각하기
/*
'-'가 나오는 순간부터 다음 나오는 숫자들은 모두 뺄셈을 해주자.
기본값이 '+'인 연산자 변수를 선언하자.
result 변수를 선언한다.
문자열을 입력받고 문자열을 순회한다.
문자가 숫자이면 숫자 변수에 저장한다.
문자가 숫자가 아닐 때,
연산자가 '+'이면 result에 숫자를 더한다.
연산자가 '-'이면 result에 숫자를 뺀다.
문자가 '-'이면 연산자를 '-'로 저장한다.
result를 출력한다.
*/
코드
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int result = 0, n = 0;
char op = '+';
for ( auto c : s ) {
if ( c >= '0' && c <= '9' )
n = n * 10 + (c - '0');
else {
if ( op == '+' ) result += n;
if ( op == '-' ) result -= n;
if ( c == '-' ) op = '-';
n = 0;
}
}
if (op == '+') result += n;
if (op == '-') result -= n;
cout << result;
}
느낀점
문자열 순회가 끝난 후 마지막 숫자 케이스도 처리해줘야 한다.
(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준/BOJ] 4150번 - 피보나치 수 (파이썬) (0) | 2021.07.24 |
---|---|
[백준/BOJ] 16435번 - 스네이크버드 (C++) (0) | 2021.07.23 |
[백준/BOJ] 11047번 - 동전 0 (C++) (0) | 2021.07.20 |
[백준/BOJ] 1181번 - 단어 정렬 (C++) (0) | 2021.07.20 |
[백준/BOJ] 3040번 - 백설 공주와 일곱 난쟁이 (C++) (0) | 2021.07.18 |
댓글