[프로그래머스 / C++] 문자열 계산하기

YH·2023년 7월 17일
0

문제

문자열 계산하기 : 문제 링크


문제 분석

  • my_string은 "3 + 5"처럼 문자열로 된 수식이다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return
  • 문자열 format을 파싱할 때 사용하는 stringstream 클래스를 사용하기 위해 sstream을 헤더에 포함
  • stringstream 변수 ss에 문자열 my_string를 넣어 초기화하고, 공백을 기준으로 분리된 문자열을 temp에 저장 및 문자열 벡터 s_list에 추가
  • 가장 처음 나오는 정수를 먼저 stoi 변환후 answer에 저장. "+" 이후에 나온 값은 answer에 더하고, "-" 이후에 나온 값은 빼기. 이때, stoi 함수를 통해 string 형태를 int로 변환하여 연산

유사문제
컨트롤 제트 : 문제 링크
OX퀴즈 : 문제 링크
다항식 더하기 : 문제 링크


풀이

#include <string>
#include <vector>
#include <sstream>

using namespace std;

int solution(string my_string) {
    int answer = 0;
    vector<string> s_list;
    stringstream ss(my_string);
    string temp;
    
    while(ss >> temp) s_list.push_back(temp);
    answer += stoi(s_list[0]);
    for(int i = 1; i < s_list.size(); i++) {
        if(s_list[i] == "+") answer += stoi(s_list[i+1]);
        else if(s_list[i] == "-") answer -= stoi(s_list[i+1]);
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글