백준 1541_잃어버린 괄호

hello_hidi·2021년 7월 25일
0

baekjoon_C++

목록 보기
32/33
post-thumbnail

<소스코드>

#include <iostream>
#include <string>
using namespace std;
int main(void){
    string str;
    cin >> str;
    int result = 0;
    string temp = "";
    bool minus = false;
    for (int i = 0; i <= str.size(); i++){
    //연산자일 경우
     if (str[i] == '+' || str[i] == '-' || str[i] == '\0'){
         if (minus){
             result -= stoi(temp);
         }else{
              result += stoi(temp);
         }
         temp = ""; //초기화
         if (str[i] == '-'){ minus = true;}
         continue;
    
    }
    temp += str[i];
    }
    cout << result << endl;
}
  1. 변수&함수
    string str : 입력값
    int result : 정답값
    string temp : 임시값
    bool minus : 뺄셈을 할지 말지 정해주는 변수
  1. 알고리즘
    1) 그냥 숫자가 나올 경우 : temp에 문자열 합치기로 더해준다.
    2) 연산자가 나온다면
    - minus == false : result에 temp를 int형 +
    - minus == true : result에 temp를 int형 -
    그리고 temp를 초기화(다음 숫자 받아야쥥)
    3) 만약 '-' 나온 경우 : minus = true로 변경
  1. 배운점
    stoi() : string to int
  1. 아쉬운점&느낀점
    첫번째 문제는 문제 이해를 잘 못했고, 그래도 뭔가 재귀적인 느낌이 있어서 정말 어려웠다. 다음 번 상황을 생각하면서 해야 하는 문제들이 취약하다. 설명도 잘 못하겠고 이 문제를 통해서 실력을 앞으로 키워야 겠다.
profile
안뇽희디

0개의 댓글