[C++] 프로그래머스 간단한 식 계산하기
문제설명
문자열 binomial이 매개변수로 주어집니다.
binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수,
op는 '+', '-', '*' 중 하나입니다.
주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.
제한사항
• 0 ≤ a, b ≤ 40,000
• 0을 제외하고 a, b는 0으로 시작하지 않습니다.
입출력 예
binomial | result |
---|---|
“43 + 12” | 55 |
“0 - 7777” | -7777 |
“40000 * 40000” | 1600000000 |
풀이
bionomial 문자열을 공백을 기준으로 나누기 위해 split 함수를 만들어 문자열을 분리하고, 연산자에 맞게 연산하는 로직을 구현하여 문제를 풀 수 있었습니다.
#include <string>
#include <vector>
#include <sstream>
using namespace std;
vector<string> split(string str, char Delimiter)
{
istringstream iss(str);
string buffer;
vector<string> result;
while(getline(iss, buffer, Delimiter))
{
result.push_back(buffer);
}
return result;
}
int solution(string binomial) {
int answer = 0;
vector<string> arr;
arr = split(binomial, ' ');
int a = stoi(arr[0]);
int b = stoi(arr[2]);
string op = arr[1];
if(op == "+")
answer = a + b;
else if(op == "-")
answer = a - b;
else
answer = a * b;
return answer;
}
결과
Leave a comment