본문 바로가기
Algorithm/Baekjoon

[백준/BOJ] 1541번 - 잃어버린 괄호 (C++)

by shine-jung 2021. 7. 23.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
'-'가 나오는 순간부터 다음 나오는 숫자들은 모두 뺄셈을 해주자.
기본값이 '+'인 연산자 변수를 선언하자.
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;
}

 


 

느낀점

 

문자열 순회가 끝난 후 마지막 숫자 케이스도 처리해줘야 한다.

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글